Search Postgresql Archives

Re: Regular expression in an if-statement will not work

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxxxxxx> wrote:
Dear 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}$' THEN


Or 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}$' );

regards
Szymon Guz


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux