我有两张表table1
和table2
。
fields of table1 - id and count
fields of table2 - id and count
两个表都有相同的字段。现在我想在BEFORE INSERT TRIGGER
上创建table1
,它将检查if count = 2
然后插入table2,否则在table1中。
我创建了触发器,但是当我触发此查询时..example-
insert into table1 (id, count) values (1323, 2);
然后将一行插入到table2中(这是我想要的),同样的行也插入到table1中。
我希望在table1或table中插入行,而不是在两个表中。
我的目标是什么?
答案 0 :(得分:0)
试试这个:
delimiter $$
CREATE TRIGGER myTrigger
BEFORE INSERT ON table1
FOR EACH ROW
BEGIN
IF NEW.count = 2 THEN
insert into table2 (id, count) values (New.id,New.Count);
ELSE
<<no action>>
END IF;
END$$
答案 1 :(得分:0)
我不确定你为什么要这样,所以我怀疑我可能会就某种解决方案给出建议,这些解决方案应该以不同的方式修复,但是我们走了。
正如您所见in this question here,不可能整齐地停止插入。您可以尝试发错,这样您就不会插入,但我认为这真的很痛苦。
你可以做的是制作一个假表dummytable
并将你的插入触发器放在那里。您的行将始终插入虚拟表中,但您可以根据自己的意愿将其插入table1
或table2
。触发器的肉看起来像
IF NEW.count = 2 THEN
INSERT INTO table2 (id, count) VALUES (New.id,New.Count);
ELSE
INSERT INTO table2 (id, count) VALUES (New.id,New.Count);
END IF;
你必须时不时地清理假人。