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 по дате отправления:

Предыдущее
От: John R Pierce
Дата:
Сообщение: Re: postgresql scalability issue
Следующее
От: Jakub Ouhrabka
Дата:
Сообщение: ERROR: Out of memory - when connecting to database