2

テーブルがあるとしましょう。

CREATE TABLE IF NOT EXISTS Test (
  Id int(11) NOT NULL AUTO_INCREMENT,
  Foo tinyint(1) unsigned NOT NULL DEFAULT 0,
  Bar varchar(255) NOT NULL,
  PRIMARY KEY (Id)
);

トリガーを挿入する前に:

DROP TRIGGER IF EXISTS `test_update`;
DELIMITER //
CREATE TRIGGER `test_update` BEFORE UPDATE ON `Test`
FOR EACH ROW BEGIN
  IF NEW.Foo IS NULL THEN
    -- do something
  END IF;
END
//
DELIMITER ;

トリガーを介して、Foo列が実際に更新ステートメントに渡されるかどうかを確認します。そうでなければ私は何かをします。

私のクエリ:

UPDATE Test
SET Bar = '23'
WHERE Id = 1;

Fooが設定されていないことを正しく検出する方法は?

4

1 に答える 1