Re: Syntax of: alter table ... add constraint ...
От | Tom Lane |
---|---|
Тема | Re: Syntax of: alter table ... add constraint ... |
Дата | |
Msg-id | 26257.1289236179@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: Syntax of: alter table ... add constraint ... (Alban Hertroys <dalroi@solfertje.student.utwente.nl>) |
Список | pgsql-general |
Alban Hertroys <dalroi@solfertje.student.utwente.nl> writes: > On 8 Nov 2010, at 16:18, Alexander Farber wrote: >> alter table pref_users add constraint pref_users_medals_check check >> (medals >= 0); >> >> has worked! > To clarify a bit on this; if you add a constraint, you specify its name and what type of constraint it is, before specifyingthe actual constraint expression. > Hence the need to add 'check' (the constraint type) between 'pref_users_medals_check' (the name) and '(medals >= 0)' (theexpression). One other thing that's maybe worth remembering about the syntax of constraint clauses: the word CONSTRAINT is really used to introduce a constraint name. If you want to create a constraint with no preselected name, you leave off both the name and the word CONSTRAINT --- but you still need the word(s) specifying the constraint type, such as CHECK or FOREIGN KEY. So either of these syntaxes are legal: alter table pref_users add constraint pref_users_medals_check check (medals >= 0); alter table pref_users add check (medals >= 0); In the latter case the constraint will be created with some system-selected name. (In fact, it looks like pref_users_medals_check is exactly the name you'd get by default, if there were no such constraint name already in use.) regards, tom lane
В списке pgsql-general по дате отправления: