Jeroen Ruigrok/asmodai wrote:

Hi,

just want to verify first with you guys before dumping it on the bugs
list.  Most likely I am just being silly here or something.

Take this:

create table blah (name TEXT CHECK (name IN ('blah', 'bleh')));
test=# \d blah
Table "public.blah"
Column | Type | Modifiers --------+------+-----------
name | text | Check constraints: "blah_name" ((name = 'blah'::text) OR (name = 'bleh'::text))


As we would expect PostgreSQL to do.  The constraint has an
automatically assigned name.

Now, to continue:

ALTER TABLE blah DROP CONSTRAINT blah_name;
ALTER TABLE blah ADD CHECK (name IN ('blah', 'bleh'));
test=# \d blah
Table "public.blah"
Column | Type | Modifiers --------+------+-----------
name | text | Check constraints: "$1" ((name = 'blah'::text) OR (name = 'bleh'::text))


And this time around PostgreSQL doesn't assign an automatic name.
Well, it depends on what you call a name, but $1, $2, and so on isn't
quite descriptive.  Is this an oversight or am I missing some subtle
thing here?



You can name it yourself:

ALTER TABLE blah ADD CONSTRAINT blurfl CHECK (name IN ('blah', 'bleh'));

I do this a lot.

I agree the autogenerated names are less than pretty.

cheers

andrew



---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?

http://archives.postgresql.org

Reply via email to