| From: | Richard Huxton <dev(at)archonet(dot)com> |
|---|---|
| To: | Ungermann Carsten <carsten(dot)ungermann(at)ib-ungermann(dot)de> |
| Cc: | pgsql-general(at)postgresql(dot)org |
| Subject: | Re: Regular expression in an if-statement will not work |
| Date: | 2010-09-09 15:52:30 |
| Message-ID: | 4C8902BE.2060103@archonet.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
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
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Merlin Moncure | 2010-09-09 16:25:20 | Re: psql '\copy' command for writing binary data from BYTEA column to file |
| Previous Message | Rob Richardson | 2010-09-09 15:43:15 | Query help, please |