Re: abnormal behaviour of a CHECK CONSTRAINT with a regular
От | Daniel Struck |
---|---|
Тема | Re: abnormal behaviour of a CHECK CONSTRAINT with a regular |
Дата | |
Msg-id | 20040210170858.4cf42b6d.struck.d@retrovirology.lu обсуждение исходный текст |
Ответ на | Re: abnormal behaviour of a CHECK CONSTRAINT with a regular expression when a trigger is added (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-bugs |
> I don't see any bug here; it's just that CHECK constraints are applied > after any BEFORE triggers are run. Since the triggers could change the > data to be inserted, the reverse order would be insecure. Ups, it did make some false assumptions. Thank you for the clarification. If I understood now correctly, first the type, then the trigger and last th= e check constraint is checked. This makes it also impossible to change the type of a value by a trigger? Say I would want to change the input of a user to a date, this wouldn't be = possible, because in first instance the type is not a date. Here is an example I tried out: CREATE TABLE test(datum DATE); CREATE OR REPLACE FUNCTION function_test() RETURNS trigger AS 'BEGIN new.datum :=3D (''15.06.'' || new.datum)::date; RETURN new; END;' LANGUAGE plpgsql; CREATE TRIGGER trigger_test BEFORE INSERT OR UPDATE ON test FOR EACH ROW EXECUTE PROCEDURE function_test(); INSERT INTO test VALUES('2003'); Best regards, Daniel --=20 Retrovirology Laboratory Luxembourg Centre Hospitalier de Luxembourg 4, rue E. Barbl=E9 L-1210 Luxembourg phone: +352-44116105 fax: +352-44116113 web: http://www.retrovirology.lu e-mail: struck.d@retrovirology.lu
В списке pgsql-bugs по дате отправления: