文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

什么是mysql中列的默认值

2024-04-02 19:55

关注

下面讲讲关于什么是mysql中列的默认值,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完什么是mysql中列的默认值这篇文章你一定会有所受益。

在 MySQL 中,每个字段定义都包含附加约束或者修饰符,这些可以用来增加对所输入数据的约束。

NULL 和 NOT NULL 修饰符、DEFAULT 修饰符,AUTO_INCREMENT 修饰符。

NULL 和 NOT NULL 修饰符

可以在每个字段后面都加上这 NULL 或 NOT NULL 修饰符来指定该字段是否可以为空(NULL),

还是说必须填上数据 (NOT NULL)。MySQL 默认情况下指定字段为 NULL 修饰符,如果一个字段指定为NOT NULL,

MySQL 则不允许向该字段插入空值(这里面说的空值都为 NULL),因为这是 “规定”。

但是在自增列和 TIMESTAMP 字段中,这个规则并不适用。

向这些字段中插入 NULL 值将会导致插入下一个自动增加的值或者当前的时间戳。

mysql> create table t10 (
    -> id int not null default 0,
    -> name char(10) not null default ''
    -> );
Query OK, 0 rows affected (0.01 sec)
#插入2个值是ok的.
mysql> insert into t10 values (1,"lisi");
Query OK, 1 row affected (0.08 sec)
#只插入一个值,也是ok的.
mysql> insert into t10 (id) values (2);
Query OK, 1 row affected (0.00 sec)
#发现未插入的name列继承default的“”值.
mysql> select * from t10;
+----+------+
| id | name |
+----+------+
|  1 | lisi |
|  2 |      |
+----+------+
2 rows in set (0.00 sec)
mysql> select * from t10 where name = '';
+----+------+
| id | name |
+----+------+
|  2 |      |
+----+------+
1 row in set (0.00 sec)

#创建t11表,字段id,name不为null.
mysql> create table t11 ( id int not null, name char(10) not null);
Query OK, 0 rows affected (0.01 sec)
#如果只插入其中一列,发现报错,其中另一列不能为空.
mysql> insert into t11 (id) values (2);
ERROR 1364 (HY000): Field 'name' doesn't have a default value
#如果第二列插入"null"也会报错,设置字段为not null.
mysql> insert into t11 (id,name) values (2,null);
ERROR 1048 (23000): Column 'name' cannot be null
#插入“0”,""字段是ok的.
mysql> insert into t11 (id,name) values (2,0);
Query OK, 1 row affected (0.00 sec)
mysql> insert into t11 (id,name) values (2,"");
Query OK, 1 row affected (0.01 sec)

结论:

如果一个字段中没有指定 DEFAULT 修饰符,MySQL 会依据这个字段是 NULL 还是 NOT NULL 自动设置默认值。

如果指定字段可以为 NULL,则 MySQL 为其设置默认值为 NULL。

如果是 NOT NULL 字段,MySQL 对于数值类型插入 0,字符串类型插入空字符串.

对于以上什么是mysql中列的默认值相关内容,大家还有什么不明白的地方吗?或者想要了解更多相关,可以继续关注我们的行业资讯板块。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯