SQL触发器创建-如何检查NULL或为空?

时间:2019-01-12 21:49:49

标签: mysql sql syntax-error mysql-error-1064

看来我的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 */

我一直在四处看看我在做什么错,但我只是不明白。

1 个答案:

答案 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并设置定界符。