我有以下表格
CREATE TABLE `trigger_root` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`p` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
);
CREATE TABLE `trigger_test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`p` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
);
以及以下触发器
DELIMITER ||
CREATE TRIGGER tit
BEFORE INSERT ON trigger_root
FOR EACH ROW
BEGIN
INSERT INTO trigger_test (p) values (NEW.p);
END ||
CREATE TRIGGER tdt
BEFORE delete ON trigger_root
FOR EACH ROW
BEGIN
delete from trigger_test where p=OLD.p;
END ||
DELIMITER ;
但是,如果我使用以下声明
replace into trigger_root(id,p) select id,p from trigger_root;
仅调用删除触发器。如果我删除删除触发器,则调用插入触发器。 所以看来替换只触发一个而不是两个触发器 这是一般性限制还是我做错了什么?
答案 0 :(得分:0)
我发现了错误。插入需要在之后而不是之前。