From: | Ungermann Carsten <carsten(dot)ungermann(at)ib-ungermann(dot)de> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | Regular expression in an if-statement will not work |
Date: | 2010-09-09 10:55:08 |
Message-ID: | 33A38ACD-AB1E-423B-A6AB-2E453DCE599C@ib-ungermann.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
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?
To find my mistake I have made some additional tests:
'^[0-9]$' -- works for a one digit value
'^[0-9][0-9]$' -- works for a two digit value
'^[0-9][0-9][0-9]$' -- works for a three digit value
'^[0-9]{1,3}$' -- don't work
'^[0-9]+$' -- don't work
'^[0-9]*$' -- don't work
I hope there is anybody who can help me to solve my problem and explain my mistake! In my opinion all the regular expressions do lost the same.
Thanks in advanced,
Carsten Ungermann
From | Date | Subject | |
---|---|---|---|
Next Message | Phui Hock | 2010-09-09 11:13:09 | How to inherit search_path from template |
Previous Message | Dmitriy Igrishin | 2010-09-09 09:21:43 | Re: Dynamically update NEW columns in plpgsql trigger |