首页 > 解决方案 > 在 MySql 列中接受空值,但默认情况下不接受

问题描述

我只是找不到我的问题的答案。如果堆栈溢出,只需发布​​它,我将删除我的帖子。

我的问题:

我想接受nullmysql 列中的值,但默认情况下不接受。当我插入一行时,我还应该为该列设置一个值,这应该是必需的。

现在,在 phpmyadmin 中,如果我检查Null字段(接受null值),字段Default(默认值)将自动设置null值。这意味着我可以省略在insert查询中为该列设置一个值,它将自动填充一个null值。

我什么时候说过如果未设置列应自动填充?我说接受空值,而不是自动填充。

我错过了什么吗?

标签: mysqlnull

解决方案


如果一列具有NULL属性,而您没有指定显式DEFAULT属性,就好像您使用DEFAULT NULL. 这在“隐式默认处理”的文档中指定:

如果列可以将 NULL 作为值,则使用显式 DEFAULT NULL 子句定义该列。

如果您想防止在插入时省略列,我认为您可以通过指定DEFAULT导致错误的表达式来做到这一点。这要求您至少使用 8.0.13 版本的 MySQL,因为在此之前DEFAULT必须是文字,而不是表达式。


推荐阅读