2
我有一个用于排序类别的“订单”列的类别表。 我想在触发之前插入递增设置顺序:如果在触发器中为空,则设置变量
CREATE TRIGGER `categories_set_order` BEFORE INSERT ON `categories` FOR EACH ROW BEGIN
DECLARE max_order INT DEFAULT 0;
SELECT MAX(categories.order) INTO max_order FROM categories;
SET NEW.order = max_order + 1;
END;
但是如果在数据库中没有记录,订单列被设置为NULL。 我已经修改了触发代码:
CREATE TRIGGER `categories_set_order` BEFORE INSERT ON `categories` FOR EACH ROW BEGIN
DECLARE max_order INT DEFAULT 0;
SELECT MAX(categories.order) INTO max_order FROM categories;
IF (ISNULL(@max_order)) THEN BEGIN
SET max_order = 0;
END;
SET NEW.order = max_order + 1;
END;
And I'm getting the following error:
Error Code: 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 '' at line 9
线9:
IF(ISNULL(@max_order))然后开始
我试着删除 “@”,但仍然得到相同的错误。如何解决它?