0
我有2个表,让我们将它命名为表A和表B,每次在表中插入一些东西我希望一些数据(ID,名称,评论)自动插入表中B但是只有在表B中没有原始名称相同的情况下。MySQL如果触发条件内
实施例:
如果我插入OBJECT1所述的与值:
id=1, colour=2, name=example, price=5€, comment="blablabla"
它应在表B中被插入的行与此值:
id=1, name=example, comment="blablabla"
但如果再我在A中插入OBJECT2的值为:
id=2, colour=5, name=example, price=10€, comment="aaa";
表B中什么都不应该发生,因为表B中已经有一行以name = example。
这是我的代码:
CREATE TRIGGER mytrigger
BEFORE INSERT ON tablea
IF NOT EXISTS (SELECT * FROM tableb WHERE tableb.name = NEW.name)
THEN
INSERT INTO tableb (id, name, comment)
VALUES (NEW.id, NEW.name, NEW.comment)
END IF
这是我收到的错误:
你在你的SQL语法错误...
我也尝试过在定义的开始和结尾添加BEGIN和END,还尝试了END而不是END IF,还尝试了BEGIN而不是THEN
有人知道我做错了什么吗?
触发器是**高度特定供应商的** - 所以请您是否使用'mysql','postgresql'添加标签来指定,'SQL服务器','oracle'或'db2' - 或者其他的东西。 –