Re: Non inheritable check constraint - Mailing list pgsql-general

From Clodoaldo Neto
Subject Re: Non inheritable check constraint
Date
Msg-id CA+Z73LEz2oh8_DSWVNi8UEaUvqTSoht3YNpstt9mNy3JaJRNQw@mail.gmail.com
Whole thread Raw
In response to Non inheritable check constraint  (Clodoaldo Neto <clodoaldo.pinto.neto@gmail.com>)
List pgsql-general
2012/3/5 Clodoaldo Neto <clodoaldo.pinto.neto@gmail.com>
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.

I don't know if it was already there when I asked but ! Thank You !

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 by date:

Previous
From: Pham Ngoc Hai
Date:
Subject: Re: Postgresql segmentation fault at slot_deform_tuple
Next
From: Paulo Correia
Date:
Subject: Re: Postgres 9.0 Streaming Replication and Load Balancing?