【发布时间】:2021-01-02 01:10:05
【问题描述】:
你好,堆栈溢出的世界! 我对触发器是全新的,但在我的新项目中使用它们很有趣。 我已经完成了一些工作,但正在努力通过从名称的开头删除“The”来设置排序字段。
作为新手,我正在使用 PHP MyAdmin 来构建我的触发器。所以我在插入之前将它设置为我的“aartist”表。这两个字段是艺术家姓名和艺术家排序。这是我尝试过的完整代码。
BEGIN
IF (left(new.artist_name,4) != "The ")
THEN
set new.artist_sort = new.artist_name
ELSE
set new.artist_sort = right(new.artist_name,len(new.artist_name)-4)
END IF;
END
我也尝试将其剥离以获得更简单的东西,但仍然没有运气。 IF 语句在 TRIGGER 中似乎不起作用。
BEGIN
IF (new.artist_name != new.artist_sort) THEN
set new.artist_sort = new.artist_name
END IF;
END
PHPMyAdmin 给出的错误是:
One or more errors have occurred while processing your request:
The following query has failed: "CREATE DEFINER=`####`@`localhost` TRIGGER `AddArtist` BEFORE INSERT ON `aartist` FOR EACH ROW BEGIN IF (new.artist_name != new.artist_sort) THEN set new.artist_sort = new.artist_name END IF; END"
MySQL said: #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 IF; END' at line 4
一如既往地感谢您提供任何帮助以找出我可能做错了什么。
【问题讨论】:
标签: mysql if-statement triggers