SQL 触发器创建 - 如何检查是否为 NULL 或为空?
SQL Trigger Creation - How do I check if NULL or empty?
我的 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$$
;
服务器仍然响应 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 */
我一直在四处寻找我做错了什么,但我就是不明白。
嗯:
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
并设置分隔符。
我的 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$$
;
服务器仍然响应 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 */
我一直在四处寻找我做错了什么,但我就是不明白。
嗯:
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
并设置分隔符。