gpt4 book ai didi

php - 触发器阻止 INSERT

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

我有一个 html 表单,可以发送数据库中的一些数据。我刚刚创建了一个触发器,每个用 LA 填写 city 字段的人都会在名为 tag 的列中添加“HI FROM LA”一词>.

问题是,在我创建此触发器后,当我尝试提交表单时出现错误:

#1442 - Can't update table 'users' in stored function/trigger because it is already used by statement which invoked this stored function/trigger. 

触发器是:

DELIMITER |
CREATE TRIGGER update_tag BEFORE INSERT ON users
FOR EACH ROW
BEGIN
IF (NEW.city= 'LA') THEN
INSERT INTO users
SET NEW.tag = 'HI FROM LA';
END IF;
END;
|
DELIMITER ;

插入完成:

INSERT INTO users(id, name, city) VALUES(23, "John", "LA")

我有哪些替代方案可以避免这种冲突?

编辑触发器:

我还创建了一个名为“trigger”的新表:

DELIMITER |
CREATE TRIGGER update_tag BEFORE INSERT ON users
FOR EACH ROW
BEGIN
IF (NEW.city= 'LA') THEN
INSERT INTO trigger
SET NEW.tag = 'HI FROM LA';
END IF;
END;
|
DELIMITER ;

使用此触发器,我在第 5 行收到错误

最佳答案

您不需要为此使用触发器。

如果你向我们展示的触发器有效的话,它甚至会创建一个无限循环。

只需使用您的插入查询,如下所示:
插入用户设置(城市,标签)值('LA',concat('HI FROM ',城市));

关于php - 触发器阻止 INSERT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23810336/

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