CREATE TABLE IF NOT EXISTS te ( id int(30) NOT NULL, name text NOT NULL, address text NOT NULL, Aboutus text NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
te
id
name
address
Aboutus
这里的“ te”表由4个字段组成,分别是id,名称,地址,Aboutus,Aboutus是可选的,这意味着我如何通过phpmyadmin sql将默认文本更新为db中的Profile。
我已将关于我们的字段的值从非null更改为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
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因此,如果空出现在更新那么关于我们应该进行更新Not Updated
BEFORE UPDATE
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;