gpt4 book ai didi

mysql - 创建一个触发器来插入一些内容,如果

转载 作者:行者123 更新时间:2023-11-29 08:01:05 25 4
gpt4 key购买 nike

我需要一些在 mysql 中创建触发器的帮助:我有一列名为“国家/地区”,另一列名为“标签”。

例如,每当有人插入城市“洛杉矶”时,我希望我的触发器在“标签”列中插入文本“来自加利福尼亚”。

编辑:

delimiter //
CREATE TRIGGER update_tag AFTER UPDATE ON users
FOR EACH ROW
BEGIN
IF (city = 'Los Angeles') THEN
INSERT INTO users(tag) VALUES (California);
END IF;
END;//
delimiter ;

这似乎执行时没有错误,但没有在“标签”列中插入任何内容,知道为什么吗?

PS。我希望那些给这篇文章打分“-”的人给我写一封私信,告诉我我做错了什么:)。谢谢。

最佳答案

您不能使用插入语句来更新当前正在处理的行。您应该使用 SET NEW.cxy = "" 语法。

我已经准备好了a working sqlfiddle对于您来说,这希望表明您想要实现的目标。

CREATE TABLE users (
id int auto_increment PRIMARY KEY,
`city` varchar(255),
`tag` varchar(255)
)//


CREATE TRIGGER update_tag BEFORE UPDATE ON users
FOR EACH ROW
BEGIN
IF (NEW.city = 'Los Angeles') THEN
SET NEW.tag = "California";
END IF;
END//

INSERT INTO users VALUES (1, 'test', '')//
UPDATE users SET `city` = 'Los Angeles'//

请注意,这也是一个 BEFORE UPDATE 触发器,因此您的更改也会被保存。

如果发出SELECT * FROM users,则会收到一行

1     Los Angeles    California

还有a page in the MySQL manual包含触发器示例。您应该仔细阅读该内容。

关于mysql - 创建一个触发器来插入一些内容,如果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23776746/

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