【发布时间】:2015-05-09 19:06:44
【问题描述】:
正如标题所说,我试图在一个表中插入一行,在插入另一个表后触发,但前提是第一个表中不存在给定值。
例子:
我有一张表,countries,用于存储国家/地区及其 ID:
国家
id country
1 England
2 France
... ...
我有另一个表,events,它存储有关事件的信息,如下所示:
活动
id timestamp city country
1 13435636 London England
2 45635742 Paris France
... ... ... ...
我想要做的:创建一个触发器,以便在 events 表上插入后,在 countries 表中插入一个新行,其中包含事件所在的国家/地区发生在,但前提是 countries 表中尚不存在该国家/地区。
我尝试过的:
CREATE TRIGGER Update
AFTER INSERT ON events FOR EACH ROW
INSERT INTO countries (country) VALUES (New.country)
WHERE NOT EXISTS (SELECT country FROM countries WHERE country = New.country)
CREATE TRIGGER Update
AFTER INSERT ON events FOR EACH ROW
IF NOT EXISTS (SELECT country FROM countries WHERE country = New.country)
BEGIN
INSERT INTO countries (country) VALUES (New.country)
END
CREATE TRIGGER Update
AFTER INSERT ON events FOR EACH ROW
IF NOT EXISTS (SELECT country FROM countries WHERE country = New.country)
INSERT INTO countries (country) VALUES (New.country)
除了一些其他变体,我得到的只是语法错误(错误 #1064)。
【问题讨论】:
标签: mysql sql database triggers sql-insert