【问题标题】:desc table in mysql say Null is No but default is NULL?mysql中的desc表说Null是No但默认是NULL?
【发布时间】:2017-08-05 08:20:49
【问题描述】:

我正在为一个项目使用mysql。当我执行“desc table_name”时,我看到表格输出显示该字段的Null 设置为No,但随后“默认”设置为NULL。一个字段怎么可能没有Null 而默认是Null 本身?

mysql> desc 用户; +-----------------+------------------+------+------ +----------------------------+----------------+ |领域 |类型 |空 |钥匙 |默认 |额外 | +-----------------+------------------+------+------ +----------------------------+----------------+ |编号 | int(10) 无符号 |否 |优先级 |空 |自动增量 | | created_at |时间戳 |是 | |空 | | |更新时间 |时间戳 |是 | |空 | | |电子邮件 | varchar(255) |否 | |空 | | |密码 | varchar(255) |否 | |空 | | |记住令牌 | varchar(100) |是 | |空 | | | profile_pic | varchar(255) |是 | | img/profile/profilepic.jpg | | |激活码 | varchar(255) |是 |统一 |空 | | | status_id | int(10) 无符号 |否 |穆尔 | 1 | | | profile_id | int(10) 无符号 |是 |穆尔 |空 | | +-----------------+------------------+------+------ +----------------------------+----------------+ 10 行一组(0.00 秒)

【问题讨论】:

  • 默认为null,因为它是你插入值之前的值状态。
  • No value in null 列表示相关字段不允许有空值。 ...这个值是在创建表/文件时分配的..
  • 如果DEFAULT is NULL 并且您不提供该字段,则INSERT 将失败,因为该字段不接受NULL
  • 我们可以这样解释吗?默认列表示单元格中的内容,而 Null(否)列是对单元格中内容的约束?

标签: mysql sql null default default-value


【解决方案1】:

这是一个完全合法的组合。这意味着当您尝试插入新行并且未明确指定此列的值时,它将默认为null,因此会出错。这种组合通常被用作强制您为列显式分配值而不是仅仅依赖默认值的一种方式。

【讨论】:

  • 由于列是主键,因此总是插入一个值是完全合理的。
猜你喜欢
  • 1970-01-01
  • 2013-12-29
  • 1970-01-01
  • 1970-01-01
  • 2018-11-17
  • 2019-02-01
  • 2015-05-27
  • 2019-03-04
  • 2020-10-12
相关资源
最近更新 更多