首页
学习
活动
专区
圈层
工具
发布

MySQL中的字段约束 null、not null、default、auto_increment

在MySQL中,每个字段定义都包含附加约束或者修饰符,这些可以用来增加对所输入数据的约束。...今天我们来看一下MySQL的字段约束:NULL和NOT NULL修饰符、DEFAULT修饰符,AUTO_INCREMENT修饰符。...向这些字段中插入NULL值将会导致插入下一个自动增加的值或者当前的时间戳。 DEFAULT 修饰符: 可以使用DEFAULT修饰符为字段设定一个默认值。...如果一个字段中没有指定DEFAULT修饰符,MySQL会依据这个字段是NULL还是NOT NULL自动设置默认值。如果指定字段可以为NULL,则MySQL为其设置默认值为NULL。...NOT NULL DEFAULT '' 不能为null 默认为 '' NULL DEFAULT NULL 可以为null 默认为null AUTO_INCREMENT 修饰符: AUTO_INCREMENT

6.9K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL JSON 类型 NOT NULL 竟无法约束 NULL 值插入?

    但是通过查看线上表数据发现,在 有 JSON NOT NULL 类型的约束下,对应的回滚 SQL 主键值竟然是 NULL 值! 这和 binlog 里记录的 '' (空)值不一致。...正常写入 NULL 值,会触发约束报错,猜测可能是历史上有过 DDL 操作。 故障复现 将 SQL_MODE 设置为 '',退出重连。(PS:切记重连生效!)...MySQL [xuzong]> create table q(id int ,age varchar() default NULL); Query OK, 0 rows affected (0.0107... NULL, `age` json NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 rowinset (0.00 sec) # 查一下试试,也能查出来...`j`(     `id` int NULL,     `age` json NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4

    76600

    mysql从5.7迁移表结构到5.5报错 near ‘(0) NULL DEFAULT NULL’

    问题由来 问题如标题所示,在开发过程的时候,需要创建一张表,从另一个环境导出的表结构sql文件,在我电脑上导入,遇到该报错 You have an error in your SQL syntax; check...the manual that corresponds to your MySQL server version for the right syntax to use near '(0) NULL...DEFAULT NULL' 报错的那一行内容为 `refund_success_time` datetime(0) NULL DEFAULT NULL COMMENT '退款成功时间', 宣言博客 Siam...同一项目的所有开发人员都应该保持所有环境的版本号一致(最好精确到小版本) 如果只是为了临时在mysql5.5完成测试,并且确认业务程序不需要使用到时间的小数秒,可以将sql文件中的长度设置删除,然后导入 datetime(0) NULL...DEFAULT NULL 改为 datetime NULL DEFAULT NULL

    3.4K30

    MySQL案例:not null和default的一个小问题

    FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "USERS" (2)当表数据为空时,新增一个not null字段、不指定default...,执行成功;其实这也比较好理解,因为没有数据,not null约束校验通过,字段新增成功,not null只会约束后续数据修改 SQL> select count(*) from sbtest;...,新增一个not null字段、不指定default,报错ORA-01758;报错信息也非常清晰,因为有数据,not null约束校验不通过,字段无法新增成功 SQL> select count(*)...AUTO_INCREMENT, `k` int(10) unsigned NOT NULL DEFAULT '0', `c` char(120) NOT NULL DEFAULT '',...这里可以有两个猜测:一是忽略了not null约束,二是强制指定了default mysql> select count(*) from sbtest; +----------+ | count(*)

    7.8K60
    领券