aboutusフィールドのnotnullをnullに変更しました
CREATE TABLE IF NOT EXISTS `te` (
`id` int(30) NOT NULL,
`name` text NOT NULL,
`address` text NOT NULL,
`Aboutus` text NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
これがトリガーですBEFORE INSERT
CREATE TRIGGER new_insert
BEFORE INSERT ON `te`
FOR EACH ROW
SET NEW.`Aboutus` = CASE WHEN NEW.Aboutus IS NULL THEN 'Not Updated' ELSE NEW.Aboutus END
;
Aboutus
なしで挿入
INSERT INTO `te` (`id`, `name`, `address`)
VALUES (1, 'name', 'address') ;
Aboutus
で挿入
INSERT INTO `te` (`id`, `name`, `address`, `Aboutus`)
VALUES (2, 'name', 'address', 'Aboutus') ;
null Aboutus
を渡して挿入します
INSERT INTO `te` (`id`, `name`, `address`, `Aboutus`)
VALUES (3, 'name', 'address', null) ;
デモ
編集 @garethD
更新シナリオのケースを指摘しました。BEFORE UPDATE
で別のトリガーも必要です したがって、更新にnullが表示される場合は、aboutusをNot Updated
として更新する必要があります。
CREATE TRIGGER update_trigger
BEFORE UPDATE ON `te`
FOR EACH ROW
SET NEW.`Aboutus` = CASE WHEN NEW.Aboutus IS NULL THEN 'Not Updated' ELSE NEW.Aboutus END
;
UPDATE te
SET AboutUs = NULL;