我使用MariaDB作为我的数据库,我遇到了一些创建触发器的问题。代码如下:
CREATE TRIGGER `trigger` BEFORE INSERT ON `table_1` FOR EACH ROW
BEGIN
IF NOT CONTAINS(`db`.`table_2`.`item`, NEW.item) THEN
INSERT INTO `db`.`table_2` (`item`, `item_2`, `item_3`) VALUES (NEW.item, "foo",
"bar");
END IF;
END
问题是table_2与table_1一起在数据库“db”中,但是当运行此代码时,它给出了以下错误:
SQL Error (1109): Unknown table 'table_2' in field list
我对此非常困惑,因为看起来我应该能够通过我正在阅读的所有内容来做到这一点。我想要做的就是在一个表中强制插入,以便在不满足条件时插入另一个表。
答案 0 :(得分:0)
我猜你打算:
CREATE TRIGGER `trigger` BEFORE INSERT ON `table_1` FOR EACH ROW
BEGIN
IF NOT EXISTS (SELECT 1 FROM db.table_2 t2 WHERE CONTAINS(t2.item, NEW.item) THEN
INSERT INTO `db`.`table_2` (`item`, `item_2`, `item_3`)
VALUES (NEW.item, 'foo', 'bar');
END IF;
END;