gpt4 book ai didi

mysql - 当字段为空时,如何让 MySQL 给出错误?

转载 作者:行者123 更新时间:2023-11-30 00:52:17 25 4
gpt4 key购买 nike

如何创建包含不接受 NULL 值的字段的表。

例如表格。

create table student
(
id_no int(3) unsigned primary key,
fname varchar(30),
lname varchar(30),
age
)

我希望 fname 和 lname 永远不会为空,如果我不填写其中的任何内容,则会出现错误。我尝试在数据类型后添加“Not Null”,但即使 fname 未填写,它仍然接受记录。

最佳答案

编辑:

经过一些研究和尝试,我想出了一个解决方案。实际上,您正在插入空字符串,并且它们不为 NULL。要检查 NULL 错误,请执行以下操作:

INSERT INTO `student` ( `fname`,`lname`) VALUES ('john',NULL)

您将收到错误:

[Err] 1048 - Column 'lname' cannot be null

要防止空字符串,您必须使用触发器,或者在执行 INSERT 查询之前对服务器端编程语言进行检查以将空字符串转换为 NULL。 INSERT 触发器的示例如下:

CREATE TRIGGER avoid_empty_records
BEFORE INSERT ON student
FOR EACH ROW
BEGIN
IF new.fname = '' THEN SET new.fname = NULL ;
END IF;

IF new.lname = '' THEN SET new.lname = NULL ;
END IF;

END;

现在,如果您尝试将 fname 或 lname 留空,它将显示以下错误:

Column 'lname' cannot be null

关于mysql - 当字段为空时,如何让 MySQL 给出错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20866851/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com