我正在尝试创建一个触发器,以在插入新行时从另一个表中导入字段,但会收到错误消息:
#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触发器的文章,但找不到任何有用的信息。
似乎没有任何作用。
我的触发代码:
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