Re: Regular expression in an if-statement will not work
От | Ungermann Carsten |
---|---|
Тема | Re: Regular expression in an if-statement will not work |
Дата | |
Msg-id | 41C785E8-C66B-4BCB-AF40-FBA97D05EF7E@ib-ungermann.de обсуждение исходный текст |
Ответ на | Re: Regular expression in an if-statement will not work (Szymon Guz <mabewlun@gmail.com>) |
Список | pgsql-general |
I tried it once more, now. There is no change in the behavior. I use the $$-notation to avoid double "\" and double "'". Also there is no syntax error in this statement.
The constraint is a bad option because I have to log errors when I import a csv-file.
Thanks and regards
Carsten Ungermann
Am 09.09.2010 um 15:44 schrieb Szymon Guz:
On 9 September 2010 12:55, Ungermann Carsten <carsten.ungermann@ib-ungermann.de> wrote:regardsDear postgres list,I need to verify the value of a column by a regular expression in an if-statement before insert or update. It should be a one to three digit value. I wrote a trigger and a trigger function. In the trigger function I want to use the following if-statement to verify the value:IF new.value !~ E'^\d{1,3}$' THEN RAISE EXCEPTION '...some text...'; END IF;It will not work! Why?How about this:IF new.value !~ E'^\\d{1,3}$' THENOr if you only want to check the 3digit value, without any trigger, IMHO this is much simpler:alter table x add constraint check_is_3_digit check ( value ~ E'^\\d{3}$' );Szymon Guz
В списке pgsql-general по дате отправления: