Re: Non inheritable check constraint
От | Clodoaldo Neto |
---|---|
Тема | Re: Non inheritable check constraint |
Дата | |
Msg-id | CA+Z73LEz2oh8_DSWVNi8UEaUvqTSoht3YNpstt9mNy3JaJRNQw@mail.gmail.com обсуждение исходный текст |
Ответ на | Non inheritable check constraint (Clodoaldo Neto <clodoaldo.pinto.neto@gmail.com>) |
Список | pgsql-general |
2012/3/5 Clodoaldo Neto <clodoaldo.pinto.neto@gmail.com>
It will be in 9.2:
Clodoaldo
I have gone through the issue of making a parent table not writable. After discussing it (1) I adopted the trigger solution. But I think that a trigger is just an invisible layer over the database model and so I'm naively proposing a new syntax to postgresql. It would inform that the check constraint is not inheritable:
create table t (c integer check NOT INHERITABLE (false));
It will be in 9.2:
Allow CHECK constraints to be declared NO INHERIT (Nikhil Sontakke, Alex Hunsaker)
This makes them enforceable only on the parent table, not on child tables.
Clodoaldo
I found a model visible solution but it only prevents non null values from being inserted. Or only prevents all inserts if that column is not null:
create table tfk (c integer unique check(false));
create table t (c integer, foreign key (c) references tfk(c));
Regards, Clodoaldo
(1) http://stackoverflow.com/questions/9545783/how-to-prevent-inserts-in-a-table
В списке pgsql-general по дате отправления: