Re: DEFERRABLE NOT NULL constraint
От | Andreas Joseph Krogh |
---|---|
Тема | Re: DEFERRABLE NOT NULL constraint |
Дата | |
Msg-id | OrigoEmail.15f.fdfc92f088952638.13ca9a7e242@prod2.officenet.no обсуждение исходный текст |
Ответ на | Re: DEFERRABLE NOT NULL constraint (Albe Laurenz <laurenz.albe@wien.gv.at>) |
Ответы |
Re: DEFERRABLE NOT NULL constraint
Re: DEFERRABLE NOT NULL constraint |
Список | pgsql-general |
P=C3=A5 tirsdag 05. februar 2013 kl. 09:59:54, skrev Albe Laurenz <= laurenz.albe@w= ien.gv.at>: <blockquote style=3D"border-left: 1px solid rgb(204, 204, 204); margin: 0pt= 0pt 0pt 0.8ex; padding-left: 1ex;"> And= reas Joseph Krogh wrote: > It's currently (9.2) not possible to define DEFERRABLE NOT NULL constr= aints. Meaning the following is > not valid: > > CREATE TABLE my_table( > id varchar PRIMARY KEY, > stuff_id BIGINT NOT NULL DEFERRABLE INITIALLY DEFERRED > ); > > While it's possible to define a trigger to enforce this, like this: > > CREATE CONSTRAINT TRIGGER my_table_t AFTER INSERT OR UPDATE ON onp_crm= _relation DEFERRABLE INITIALLY > DEFERRED > FOR EACH ROW EXECUTE PROCEDURE my_table_check_stuff_id_nn_tf(); > > And have the my_table_check_stuff_id_nn_tf() raise an exception if &qu= ot;stuff_id" is null. > > Having deferrable constraints on FKs and UKs is really nice and when w= orking with ORMs it's almost > impossible to not use this feature. > > Are there any plans to make NOT NULL constraints deferrable so one can= avoid the trigger > "boilerplate"? Not that I know of. There's an entry in the TODO list that recognizes that it would be desirable to make NOT NULL a regular constraint (you can do that today by using CHECK (col IS NOT NULL) instead). But CHECK constraints are also not deferrable... =C2=A0 +100 for having NOT NULL and CHECK-constraints deferrable:-) =C2=A0 Is there any "I want to sponsor development of <feature-X> = with $xxx" mechanism? =C2=A0 -- Andreas Joseph Krogh <andreak@officenet.no>=C2=A0 =C2=A0 =C2=A0 mob: = +47 909 56 963 Senior Software Developer / CTO - OfficeNet AS - http://www.officenet.no Public key: http://home.officenet.no/~andreak/public_key.asc =C2=A0=
В списке pgsql-general по дате отправления: