gpt4 book ai didi

mysql - 当我尝试在 phpmyadmin 中创建触发器时,不断收到错误 #1064

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

我试图创建一个触发器,以便在插入新行时从另一个表导入字段,但收到错误消息:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'END' at line 6

我使用 phpmyadmin 中的 sql 选项卡输入代码。

我已经阅读了这里的所有相关问题,仔细阅读了其他几个网站,其中包含有关 mysql 触发器的文章,但找不到任何有帮助的内容。

  • 我尝试在 END//之前的行末尾使用//
  • 我尝试过;位于 END 之前的行尾

似乎没有什么作用。

我的触发代码:

DELIMITER //
CREATE TRIGGER towns2_before_insert
BEFORE INSERT ON towns2 FOR EACH ROW
BEGIN
SET NEW.regionid = (Select RegionID from world_map
where (world_map.X = new.mapx) AND (world_map.Y = new.mapy))
END//
DELIMITER ;

towns2 和 world_map 表都存在并且具有所需的列。

据我所知,这应该从 world_map 表中具有与新的 mapx 和 mapy 列匹配的 X 和 Y 字段的任何行中获取 RegionID 字段,但我所能得到的只是这个错误。

毫无疑问,我在某个地方遇到了一个非常简单的错误,但我一生都找不到它,并且非常感谢所有帮助。

更新在 myphpadmin 触发器表单中重新创建了 @Chris J 所示的代码,忽略了 END 语句中的大红色 X 并点击了 GO 按钮 - 它有效,所以我猜问题不在于我的代码,而在于我选择的方法创建触发器。 phpmyadmin 创建的代码如下所示:

CREATE TRIGGER `towns2_before_insert` BEFORE INSERT ON `towns2`
FOR EACH ROW BEGIN
SET NEW.regionid =
(Select RegionID from world_map
where (X = new.mapx) AND (Y = new.mapy));
END

最佳答案

尽管您已经提到过,但以下内容非常适合我:

DELIMITER //
CREATE TRIGGER towns2_before_insert
BEFORE INSERT ON towns2 FOR EACH ROW
BEGIN
SET NEW.regionid = (Select RegionID from world_map
where (world_map.X = new.mapx) AND (world_map.Y = new.mapy));
END//

这是基于根据查询对架构的猜测。触发器现在存在并且在 Heidi 中可见,如下所示:

enter image description here

关于mysql - 当我尝试在 phpmyadmin 中创建触发器时,不断收到错误 #1064,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54153160/

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