看来我的SQL语法有问题。 我正在尝试创建一个触发器,然后检查数据是否为NULL或为空。
这是现在的代码,这要感谢Bill&Gordon:
DROP TRIGGER IF EXISTS `tablename_OnInsert`;
DELIMITER $$
CREATE TRIGGER `tablename_OnInsert` BEFORE INSERT ON `users`
FOR EACH ROW
BEGIN
IF NEW.`swid` IS NULL OR NEW.`swid` = '' THEN
SET NEW.`swid` = CONCAT('{', uuid(), '}');
END IF
END$$
;
服务器 still 响应为1064:
/* SQL Error (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 7 */
我一直在四处看看我在做什么错,但我只是不明白。
答案 0 :(得分:0)
嗯:
DROP TRIGGER IF EXISTS `tablename_OnInsert`;
DELIMITER $$
CREATE TRIGGER `tablename_OnInsert` BEFORE INSERT ON `users`
FOR EACH ROW
BEGIN
IF NEW.`swid` IS NULL OR NEW.`swid` = '' THEN
SET NEW.`swid` = CONCAT('{', uuid(), '}');
END IF;
END$$
您的问题似乎是)
中多余的IF
。但是,我建议使用BEGIN
/ END
并设置定界符。