gpt4 book ai didi

mysql - 将 NOT NULL 约束添加到列

转载 作者:可可西里 更新时间:2023-11-01 07:53:54 25 4
gpt4 key购买 nike

我正在使用 PHPMyAdmin 并尝试将 NOT NULL 约束添加到我的表的一列。

PHPMyAdmin 接受我的以下查询:

ALTER TABLE `wall` MODIFY `token_message` varchar(40) NOT NULL;

但我仍然可以插入空字符串(=NULL),我不明白为什么。

PS:如果你要给我一些其他的查询来添加这个约束,请注意我已经尝试了这 3 个在我的 PHPMyAdmin 中不起作用(错误类型:#1064 - 你有一个错误你的 SQL 语法;检查手册):

ALTER TABLE `wall` ALTER COLUMN `token_message` SET NOT NULL;
ALTER TABLE `wall` ALTER COLUMN `token_message` varchar(40) NOT NULL;
ALTER TABLE `wall` MODIFY `token_message` CONSTRAINTS token_message_not_null NOT NULL;

最佳答案

您写道,“我仍然可以插入空字符串 (=NULL)”,这听起来像是一种误解。在 SQL 中,空字符串的计算结果不会为 NULL,反之亦然。尝试插入一个空字符串并执行 SELECT from wall where token_message is NULL。您应该返回零行。然后尝试在指定 NULL(未加引号)作为列值的位置执行插入操作,您应该会收到预期的错误消息。

如果这些测试按预期工作,那么一切都很好,你的问题实际上是你想防止插入空白字符串。查看this question以获取建议,或者在查询之前在验证期间检查空白字符串。

关于mysql - 将 NOT NULL 约束添加到列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10218252/

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