On 09/09/10 11:55, Ungermann Carsten 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.

'^[0-9]{1,3}$' -- don't work

Works here.

CREATE TEMP TABLE tt (t text);
INSERT INTO tt VALUES ('1'),('12'),('123'),('1234'),(' 123'),('123 ');
SELECT ':' || t || ':' AS target, t ~ '^[0-9]{1,3}$' FROM tt;
 target | ?column?
--------+----------
 :1:    | t
 :12:   | t
 :123:  | t
 :1234: | f
 : 123: | f
 :123 : | f
(6 rows)

Works in 8.2, 8.3, 8.4, 9.0 for me. Either you're not testing the values you think you are, or there is some issue with escaping of characters.

--
  Richard Huxton
  Archonet Ltd

--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Reply via email to