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' - 或者其他的東西。 –