MySQL数据类型varchar和int的默认值

10

截图显示了三种常见的数据类型定义:id(自动增量)、标题和数字。

1.「none」和「NULL」有什么区别?
2.当我想要一个空字符串时,必须选择「as defined: ''」作为 varchar 类型吗?
3.对于自动增量 int 类型,我必须设置默认值「as defined: 0」吗?

enter image description here

1个回答

12

默认值为none表示没有默认值。如果在插入时未提供值,则查询将失败并显示“无默认值错误”。

NULL是实际的NULL值,意味着如果在插入时未提供值,则该列将默认为NULL(空)。对于varchar类型,可以将默认值设置为'',但NULL更好。

自增int类型不应该有默认值(默认值:无),因为它总会有一个值。


进一步澄清,要使用NULL作为默认值,该列必须允许NULL值。 - Marcus Adams
对于整数类型,NULL将插入0(零)吗? - Igor Parra
Marcus,你是正确的 - “on an insert” 我会编辑我的回答。 - None
4
另一个有趣的事情是,如果你禁用了某一列的ALLOW NULL选项,并且没有指定默认值(NONE),它将会使用该类型的默认值来替换NULL值(INTEGER类型为0,VARCHAR类型为'')。 - Marcus Adams

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接