> > Isn't it identical? The CONSTRAINT <const> is SQL standard optional
clause
> > for all commands that add constraints.
>
> Except that one is ADD CONSTRAINT, the other is an ADD FOREIGN KEY.
> They are similar in nature but different overall.
I think you're getting a little confused here, Dan.
http://www3.us.postgresql.org/users-lounge/docs/7.3/postgres/sql-altertable.
html
There is only one command for adding constraints to a table. It has this
syntax:
ALTER TABLE [ ONLY ] table [ * ] ADD table_constraint
The table_constraint clause is defined like this (basically):
[CONSTRAINT blah] (PRIMARY KEY or UNIQUE or FOREIGN KEY) ...
So, the CONSTRAINT blah clause allows you to specify a name for any of the 3
types of constraint: primary key, unique or foreign key. There's nothing
special about foreign keys in this case.
If you don't put in the CONSTRAINT blah clause, you get an automatically
assigned constraint name.
Chris