首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

5.6K20

CHECK约束_数据库check约束怎么写

可以在CHECK条件中使用任意有效的SQL表达式,CHECK约束对于插入、更新等任何对数据进行变化的操作都进行检查。...在字段定义后添加CHECK 表达式就可以为这个字段添加CHECK约束,几乎所有字段中都可以添加CHECK约束,也就是一张表中可以存在多个CHECK 约束。...(FWorkYear>0)”这个CHECK约束,所以在数据库中执行此SQL语句后数据库会报出下面错误信息: INSERT 语句与CHECK 约束”CKT_PersonFWorkY__24927208″冲突...子句添加CHECK约束的方式的缺点是约束条件不能引用其他列。...(FWorkYearCHECK约束的,所以在数据库中执行此SQL语句后数据库会报出下面错误信息: INSERT 语句与 CHECK 约束”ck_1″冲突。

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

    SQL NOT NULL约束

    SQL NOT NULL约束 一、 说明 本文主要讲一下,SQL的NOT NULL(不为空)约束相关内容。 二、 所用工具 SQL 数据库 三、 内容 1....SQL NOT NULL约束的作用 主要规定表中的数据必须遵守一定的规则,如果存在违反约束的数据行为,行为会被约束终止(也就是无法把数据添加到该表中)。...而不为空约束则强制列不接受 NULL 值 2.添加约束 (1)约束可以在创建表时规定(通过 CREATE TABLE 语句) 语法为: CREATE TABLE 表名(列名 该列的数据类型 (约束)...Age 列int类型约束为默认状态 代码: CREATE TABLE Persons ( ID int NOT NULL, Name varchar(255) NOT NULL, Address...NOT NULL; 注意:修改约束时可能会出现以下状况 1.把某个表的某个列的默认约束改为非空约束时,若是该列中原本的数据有空值存在则无法执行成功,需先将空的数据赋值才可以执行成功。

    60910

    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

    3K30

    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.1K60
    领券