Re: Explicitly inserting NULL values into NOT NULL DEFAULT 0 columns
От | Etienne Rouxel |
---|---|
Тема | Re: Explicitly inserting NULL values into NOT NULL DEFAULT 0 columns |
Дата | |
Msg-id | 1349193694874-5726334.post@n5.nabble.com обсуждение исходный текст |
Ответ на | Re: Explicitly inserting NULL values into NOT NULL DEFAULT 0 columns (Scott Marlowe <scott.marlowe@gmail.com>) |
Ответы |
Re: Re: Explicitly inserting NULL values into NOT NULL DEFAULT 0 columns
|
Список | pgsql-general |
Hi I have the same "problem" as Tanmay Patel. SELECT * FROM version(); returns : "PostgreSQL 8.4.12 on i386-apple-darwin, compiled by GCC i686-apple-darwin8-gcc-4.0.1 (GCC) 4.0.1 (Apple Computer, Inc. build 5370), 32-bit" Here is my simplified code : CREATE TABLE public.mytable ( refno int NOT NULL DEFAULT 1 ); CREATE FUNCTION public.mytable_insert_refno() RETURNS trigger AS $BODY$ BEGIN NEW.refno := 123; RETURN NEW; END; $BODY$ LANGUAGE plpgsql VOLATILE; CREATE TRIGGER mytable_insert_refno BEFORE INSERT ON public.mytable FOR EACH ROW EXECUTE PROCEDURE public.mytable_insert_refno(); INSERT INTO public.mytable (refno) VALUES (NULL) RETURNING *; As we can see when running this code, the trigger prevent the NULL value to reach the NOT NULL constraint check and a relation is successfully inserted in the table with value 123. I managed to realize this behavior when unit testing my database, the question I am asking myself is : in which order are the constraints checked? Is this order guarantee or not? -- View this message in context: http://postgresql.1045698.n5.nabble.com/Explicitly-inserting-NULL-values-into-NOT-NULL-DEFAULT-0-columns-tp5012482p5726334.html Sent from the PostgreSQL - general mailing list archive at Nabble.com.
В списке pgsql-general по дате отправления: