gpt4 book ai didi

mysql - 如果第一个表中尚不存在给定值,则 SQL 触发器 : Inserting a row in a table after an insert on another table,

转载 作者:行者123 更新时间:2023-11-29 22:27:30 26 4
gpt4 key购买 nike

正如标题所示,我试图在一个表中插入一行,在另一个表上插入后触发,但前提是第一个表中尚不存在给定值。

示例:

我有一个表,国家,它存储国家及其 ID:

国家

id   country 
1 England
2 France
... ...

我有另一个表events,它存储有关事件的信息,如下所示:

事件

id  timestamp   city    country
1 13435636 London England
2 45635742 Paris France
... ... ... ...

我想要做什么:创建一个触发器,以便在事件表上插入数据后,在国家表中插入一个新行,其中包含事件发生的国家/地区发生于,但前提是该国家/地区尚不存在于国家/地区表中。

我尝试过的:

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)。

最佳答案

试试这个

    CREATE TRIGGER Update
AFTER INSERT ON events FOR EACH ROW
BEGIN
INSERT INTO countries (country) VALUES (New.country)
WHERE New.country NOT IN (SELECT country FROM countries)
END

关于mysql - 如果第一个表中尚不存在给定值,则 SQL 触发器 : Inserting a row in a table after an insert on another table,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30143935/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com