mysql - 在 MySql 列中接受空值,但默认情况下不接受
问题描述
我只是找不到我的问题的答案。如果堆栈溢出,只需发布它,我将删除我的帖子。
我的问题:
我想接受null
mysql 列中的值,但默认情况下不接受。当我插入一行时,我还应该为该列设置一个值,这应该是必需的。
现在,在 phpmyadmin 中,如果我检查Null字段(接受null
值),字段Default(默认值)将自动设置null
值。这意味着我可以省略在insert
查询中为该列设置一个值,它将自动填充一个null
值。
我什么时候说过如果未设置列应自动填充?我说接受空值,而不是自动填充。
我错过了什么吗?
解决方案
如果一列具有NULL
属性,而您没有指定显式DEFAULT
属性,就好像您使用DEFAULT NULL
. 这在“隐式默认处理”的文档中指定:
如果列可以将 NULL 作为值,则使用显式 DEFAULT NULL 子句定义该列。
如果您想防止在插入时省略列,我认为您可以通过指定DEFAULT
导致错误的表达式来做到这一点。这要求您至少使用 8.0.13 版本的 MySQL,因为在此之前DEFAULT
必须是文字,而不是表达式。
推荐阅读
- php - php simplexml 加载字符串 xmlParseCharRef:无效的 xmlChar 值 25
- jquery - $.fn.jquery 在将 jquery 更新为新版本时显示旧版本
- mysql - vb.net 中的查询错误返回不正确的双精度值
- sql-server - 如何根据条件将数据从一个表复制到另一个表
- react-native - 热代码推送 react native
- php - 如何在laravel中的关系上应用reverse()?
- ios - Swift ios如何通过推送页面将数据传递给其他视图
- php - 之后添加小部件
来自插件的标签(Wordpress 挂钩、过滤器等) - html - ASP.NET Base64 图像源无法正确显示。
- msbuild - 使用 MSBuild 构建 C# 应用程序时如何选择 32 位或 64 位 DLL?