Hi,You can name it yourself:
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?
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