回答

收藏

将NOT NULL约束添加到列

技术问答 技术问答 247 人阅读 | 0 人回复 | 2023-09-12

我正在使用PHPMyAdmin,尝试将NOT NULL将约束添加到表的列中。+ J9 k- w2 i' w$ J
PHPMyAdmin接受以下查询:
: ~+ ^, d* O; L/ J# _ALTER TABLE `wall` MODIFY `token_message` varchar(40) NOT NULL;但我仍然可以插入空字符串(= NULL),我不明白为什么。$ l, M/ i( o; e
PS:如果你想给我一些其他的查询来添加这个约束,请注意,我已经尝试了这三种方法,这些方法在我身上PHPMyAdmin不起作用(错误类型:#1064-您的SQL语法错误;请参考手册):
6 K8 d/ V/ ~" W) G: ^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;               
" y& R4 j. r7 ^  J4 E    解决方案:                                                                6 J/ t4 s5 W8 s) {! c- O
                                                                我仍然可以插入空字符串(=9 C; G5 y& \/ z3 W3 G& E, _- V  _2 q
NULL),这听起来像是一种误解。SQL在中间,空字符串的结果不是NULL,反之亦然。试着插入一个空字符串并执行它。SELECT from wallwhere token_message isNULL。您应返回零行。然后尝试执行插入操作,您指定插入操作NULL(未加引号)作为列的值,并且应该会收到预期的错误消息。
% X- {% C0 k3 }4 M$ A/ f: A如果这些测试按预期工作,一切正常,你的问题实际上是防止插入空白字符串。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则