私はAFTER UPDATE
というトリガーを持っています。私にはうまくいかない状態がありますが、どうすれば修正できますか?なぜトリガでは反対の操作<が動作しませんか?
$$
BEGIN
IF NEW.colname <> OLD.colname THEN
DELETE FROM tableX WHERE id = OLD.id;
END IF;
END
$$
私はDELETE
クエリが動作することを、このIF 1 THEN
を書く場合は注意すべきです。だから問題はその状態です。どうしたの?
として@DarwinフォンCoraxこれらNEW.colname
のいずれか、OLD.colname
がその条件のすべてがfalse
を返し、null
である場合、コメントで述べています。だから私はこのような行動をする条件をどのように作り出すことができるのか知りたいですか?
Null <> 10 -- true
Null <> Null -- false
10 <> 12 -- true
32 <> Null -- true
3 <> 3 -- false
「NEW.colname」または「OLD.colname」のいずれかが** 'null' **ですか?もしそうなら、 '<>'は** 'null' **を返します。これは、' 'if''が**' false' **と同じ扱いになります。 –
@DarwinvonCoraxああ、あなたは正しいのですが、私はそれをテストしました。その値の1つが「null」の場合、その条件は機能しません。それで解決策はありますか? – stack
はい。ちょっと待ってください。 –