DEFERRABLE NOT NULL constraint
От | Andreas Joseph Krogh |
---|---|
Тема | DEFERRABLE NOT NULL constraint |
Дата | |
Msg-id | OrigoEmail.113.e0795ae98d01d64a.13ca67ff059@prod2.officenet.no обсуждение исходный текст |
Ответы |
Re: DEFERRABLE NOT NULL constraint
|
Список | pgsql-general |
It's currently (9.2) not possible to define DEFERRABLE NOT NULL constr= aints. Meaning the following is not valid: =C2=A0 CREATE TABLE my_table( id varchar PRIMARY KEY, stuff_id BIGINT NOT NULL DEFERRABLE INITIALLY DEFERRED ); =C2=A0 While it's possible to define a trigger to enforce this, like this:</d= iv> =C2=A0 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(); =C2=A0 And have the my_table_check_stuff_id_nn_tf() raise an exception= if "stuff_id" is null. =C2=A0 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. =C2=A0 Are there any plans to make NOT NULL constraints deferrable so one can= avoid the trigger "boilerplate"? =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=
В списке pgsql-general по дате отправления: