А разве if (old.A == new.A) (ну или != не достаточно?) Я триггеров не писал лет 8, (и вообще "чистого" SQL не видел года 3-4 уже -- коньструктора от SQLAlchemy хватало за глаза)
А оно вне триггеров употребляется? Или это что-то firebird specific? Не поленился посмотреть внутрь SQLAlchemy -- DISTINCT только в запросах употребляется, и в рефлекшне от dialects.firebird
SA триггеры не генерит, а в запросах делает (видимо) только DISTINCT в селектах на колонки. Там кодогенератор из собственного DSL в SQL с кешированием и прочим адом. Я погрепал DISTINCT и посмотрел вокруг (аккуратно -- чтобы мозг не расплавился)
no subject
Date: 2011-03-12 11:34 am (UTC)if (old.A is distinct from new.A) then exception ECannotChangeField;
no subject
Date: 2011-03-12 11:46 am (UTC)Я триггеров не писал лет 8, (и вообще "чистого" SQL не видел года 3-4 уже -- коньструктора от SQLAlchemy хватало за глаза)
no subject
Date: 2011-03-12 11:48 am (UTC)A=null(или null=B,null<>A,null<>B) возвращают null, которые интерпретируется как false, поэтому условие не выполняется.
no subject
Date: 2011-03-12 11:56 am (UTC)no subject
Date: 2011-03-12 12:02 pm (UTC)no subject
Date: 2011-03-12 12:03 pm (UTC)no subject
Date: 2011-03-12 12:12 pm (UTC)no subject
Date: 2011-03-12 12:13 pm (UTC)no subject
Date: 2011-03-12 12:16 pm (UTC)