开发者社区 问答 正文

为什么MySql触发器考虑将空白视为NULL无效?

已解决

这是我写的。我是Sql的初学者。

CREATE TABLE pahla( id integer, name varchar(15), prof varchar(15), kind_id integer, worth VARCHAR(10) NOT NULL );

ALTER TABLE pahla ADD PRIMARY KEY (id);

CREATE TRIGGER EMPTYISNULL BEFORE INSERT ON pahla FOR EACH ROW BEGIN IF worth = '' THEN SET worth = NULL END IF; END;

INSERT into pahla VALUES(2,'Sam','Writer',1,'');

我希望将“值”列中的空格视为NULL,以便不会将其插入表中。但是,无法触发我的触发器。有办法解决这个问题吗?

Failed 4:38 PM ER_UNKNOWN_SYSTEM_VARIABLE: Unknown system variable 'worth'

展开
收起
保持可爱mmm 2019-12-14 20:51:21 439 分享 版权
1 条回答
写回答
取消 提交回答
  • 采纳回答

    您的错误与您以错误的方式引用列的价值有关。

    用于在插入触发器之前分配列值,您需要新建

    IF NEW.worth = '' THEN SET NEW.worth = NULL END IF;

    但是,您还应该更改表定义,并删除值得的列的NOT NULL约束

    问题来源于stack overflow

    2019-12-14 20:51:59
    赞同 展开评论