); ERROR 1048 (23000): Column 'class_room' cannot be null mysql> insert into myclass (class_name,class_room...) values (NULL,NULL); ERROR 1048 (23000): Column 'class_name' cannot be null mysql> 默认值default 默认值:某一种数据会经常性的出现某个具体的值...t14 (name,age,gender) values (NULL,20,'男'); ERROR 1048 (23000): Column 'name' cannot be null mysql>...和NOT NULL不冲突,而是互相补充的,当用户想插入的时候,无非就是NULL或者合法数据,当用户忽略这一列的时候,使用默认值(前提是设置了默认值),如果没有设置,直接报错。...主键 primary key 主键:primary key用来唯一的约束该字段里面的数据,不能重复,不能为空,一张表中最多只能有一个。但是并不意味着一个表中的主键,只能添加给一列。
添加时进行约束: mysql> insert into test99 values(1,'孙悟空'),(null,'唐三藏'); ERROR 1048 (23000): Column 'id' cannot...> update test99 set id=null where name='孙悟空'; ERROR 1048 (23000): Column 'id' cannot be null mysql> -...> insert into student values(1,'猪八戒'),(null,'孙悟空'),(1,'沙悟净'); ERROR 1048 (23000): Column 'id' cannot...for key 'PRIMARY' 注意:这里有两处报错,第一是id不能为空,第二处是这里的重复定义了id为1。...'; ERROR 1048 (23000): Column 'id' cannot be null 注解:此时可以看到这里和上述的插入数据情况一样,小编就不再过多解释了;重复和null都是不能存在的;
数据库约束-主键约束-唯一约束-非空约束-默认值 约束概述 约束其实就是一种限制,用于修饰表中的列. 通过这种限制来保证表中数据的正确性、有效性和完整性。...主键列不能为NULL 3....' cannot be null mysql> INSERT INTO user4 VALUES(3,NULL); ERROR 1048 (23000): Column 'name' cannot be...) mysql> INSERT INTO st8 VALUES (4, '刘德华', '男'); Query OK, 1 row affected (0.00 sec) -- 姓名不赋值出现姓名不能为...null: Column 'name' cannot be null mysql> INSERT INTO st8 VALUES (5, NULL, '男'); ERROR 1048 (23000):
ERROR 1364 (HY000): Field 'class_room' doesn't have a default value //插入教室为NULL,我们会发现提示我们class_room不能为空...mysql> insert into myclass (class_name,class_room) values ('高三三班',NULL); ERROR 1048 (23000): Column...> insert into t13 (name,age,gender) values (NULL,'18','男'); ERROR 1048 (23000): Column 'name' cannot...) values ('张三','20',NULL); ERROR 1048 (23000): Column 'gender' cannot be null mysql> insert into t13...主键 6.1 基本概念 主键:primary key用来唯一的约束该字段里面的数据,不能重复,不能为空,一张表中最多只能有一个主键(不意味着一个表中的主键只能添加一列,一个主键可以被添加到一列或者多列中
mysql约束条件not null的使用 说明 1、该约束条件的意思是在向表中插入数据的时候,有约定条件not null的列值不能为空,否则会报错。...2、not null的字段是不能插入mull的,只能插入空值。...实例 mysql> create table t1(id int not null, name varchar(4)); Query OK, 0 rows affected (0.01 sec) mysql... t1 (id, name) values (null, null); ERROR 1048 (23000): Column 'id' cannot be null 以上就是mysql约束条件not null...更多mysql学习指路:MySQL 推荐操作系统:windows7系统、mysql5.8、DELL G3电脑 收藏 | 0点赞 | 0打赏
它是防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。 为了保证数据的完整性,SQL规范以约束的方式对表数据进行额外的条件限制。...规定某个字段不能为空 UNIQUE 唯一约束 规定某个字段在整个表中是唯一的 PRIMARY KEY 主键 PRIMARY KEY 主键 FOREIGN KEY 外键约束 CHECK 检查约束 DEFAULT...ERROR 1048 (23000): Column 'cardid' cannot be null insert into student values(2,'李四',null,'110222198912032546...'); //成功,tel允许为空 insert into student values(3,null,null,'110222198912032547'); //失败 ERROR 1048 (...唯一约束可以是某一个列的值唯一,也可以多个列组合的值唯一。 唯一性约束允许列值为空。 在创建唯一约束的时候,如果不给唯一约束命名,就默认和列名相同 MySQL会给唯一约束的列上默认创建一个唯一索引。
: -- 创建学生表2:指定其列不能为空 mysql> create table students2( -> id bigint not null, -> name varchar(50...) not null); Query OK, 0 rows affected (0.03 sec) -- 查看学生表2结构:NULL都为NO表示该列不能为空 mysql> desc students2...,插入为空的数据,会发生报错 mysql> insert into students2 values(1,'李四'),(2,null); ERROR 1048 (23000): Column 'name...(0.02 sec) Records: 2 Duplicates: 0 Warnings: 0 在查看表结构时,如果NULL为YES,则表示该列学生信息可以为空(NULL);如果NULL为NO,则表示该列学生信息不能为空...(NULL); 当指定该列的值不能为空时,则表示该列学生信息不可以为空(NULL)。
安装环境: 操作系统版本:RHEL 6.5 版本:MYSQL 5.5 约束条件的作用: 限制如何给字段赋值,创建表的时候如果没有设置的话,就是mysql建表的默认设置包括表结构的后四列。...1、NULL 是否允许空值 在不设置的时候,默认允许字段值为空 mysql> desc yueshu; +-------+--------------------+------+-----+----...-----+------+ | | NULL | boy | +------+------+------+ 1 row in set (0.00 sec) 2、NOT NULL 不允许为空...> insert into yueshu(name) values(null); ERROR 1048 (23000): Column 'name' cannot be null 3、KEY 索引类型...建表时,没有设置字段的默认值,mysql吧字段的默认值设置为空 例子: mysql> create table yueshu( -> name varchar(20) not null,
> insert into myclass(class_name,class_room) values("高三3班",NULL); ERROR 1048 (23000): Column 'class_room...> insert into msg(name,sex) values("张飞",NULL); ERROR 1048 (23000): Column 'sex' cannot be null mysql>...default和NOT NULL不冲突,而是互相补充的。 NOT NULL:当用户想要插入的时候,为NULL和合法数据。...主键 主键:primary key用来唯一的约束该字段里面的数据,不能重复,不能为空,一张表中最多只能有一个主键;主键所在的列通常是整数类型。...创建表的时候直接在字段上指定主键 mysql> create table tt3( -> id int unsigned primary key comment"学号不能为空", ->
: 所有列的下面 默认和非空不支持,其他支持 可以(主键没有效果) 根据约束起的作用,约束可分为: NOT NULL 非空约束,规定某个字段不能为空 UNIQUE 唯一约束,规定某个字段在整个表中是唯一的...非空约束只能出现在表对象的列上,只能某个列单独限定非空,不能组合非空 一个表可以有很多列都分别限定了非空 空字符串’' 不等于 NULL,0 也不等于 NULL # 2.4 添加非空约束...ERROR 1048 (23000): Column 'cardid' cannot be null insert into student values(2,'李四',null,'110222198912032546...');#成功,tel允许为空 insert into student values(3,null,null,'110222198912032547');#失败 ERROR 1048 (23000):...添加数据时,没有任何错误或警告 但是 MySQL 8.0 中可以使用 check 约束了。
,其他支持 可以(主键没有效果) 根据约束起的作用 ,约束可分为: NOT NULL 非空约束,规定某个字段不能为空 UNIQUE 唯一约束 , 规定某个字段在整个表中是唯一的 PRIMARY KEY...ERROR 1048 (23000): Column 'cardid' cannot be null insert into student values(2,'李四',null,'110222198912032546...');#成功,tel允许为空 insert into student values(3,null,null,'110222198912032547');#失败 ERROR 1048 (23000): Column...主键约束对应着表中的一列或者多列(复合主键) 是多列组合的复合主键约束,那么这些列都不允许为空值,并且组合的值不允许重复。 MySQL的主键名总是PRIMARY ,就算自己命名了主键约束名也没用。...添加数据时,没有任何错误或警告 但是 MySQL 8.0中可以使用check约束了 。
约束条件与数据类型的宽度一样,都是可选参数,主要分为以下几种: # NOT NULL :非空约束,指定某列不能为空; # UNIQUE : 唯一约束,指定某列或者几列组合不能重复 # PRIMARY...KEY :主键,指定该列的值可以唯一地标识该列记录 # FOREIGN KEY :外键,指定该行记录从属于主表中的一条记录,主要用于参照完整性 返回顶部 NOT NULL 是否可空,null表示空,非字符串...mysql> insert into t12 values (null); ERROR 1048 (23000): Column 'id' cannot be null mysql> insert into...DEFAULT 我们约束某一列不为空,如果这一列中经常有重复的内容,就需要我们频繁的插入,这样会给我们的操作带来新的负担,于是就出现了默认值的概念。...null 要注意子表的外键列不能为not null .
explicit_defaults_for_timestamp MySQL 5.6版本引入 explicit_defaults_for_timestamp 来控制对timestamp NULL值的处理...NOT NULL插入NULL值,不报错,无warning,插入后的值为当前时间 如果在my.cnf中explicit_defaults_for_timestamp=1 那么插入该值的时候会报错提示该列can...> insert into helei values(null); ERROR 1048 (23000): Column 'a' cannot be null mysql> insert into helei...values(NULL); ERROR 1048 (23000): Column 'a' cannot be null explicit_defaults_for_timestamp = 0 CREATETABLE...helei(t1,t2,t3) values(null,null,null); [SQL]insert into helei(t1,t2,t3) values(null,null,null) [Err] 1048
类型是用来限制 字段 必须以何种数据类型来存储记录 类型其实也是对字段的约束(约束字段下的记录必须为XX类型) 类型后写的 约束条件 是在类型之外的 额外添加的约束 约束说明 not null:标识该字段不能为空...> insert into test1 values (null); ERROR 1048 (23000): Column 'a' cannot be null mysql> insert into test1...values (1); ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY' 方式2:在所有列定义之后定义,如下: mysql> drop...注意几点: 两张表中需要建立外键关系的字段类型需要一致 要设置外键的字段不能为主键 被引用的字段需要为主键 被插入的值在外键表必须存在,如上面向test6中插入ts5_a为2的时候报错了,原因:2的值在...表中列的管理 添加列 alter table 表名 add column 列名 类型 [列约束]; 示例: mysql> drop table IF EXISTS test14; Query OK,
简介: explicit_defaults_for_timestamp 系统变量决定MySQL服务端对timestamp列中的默认值和NULL值的不同处理方法。...下面我们来测试下:(本文操作基于MySQL5.7.23 版本 SQL_MODE不包含'NO_ZERO_DATE') mysql> show variables like 'explicit_defaults_for_timestamp...> insert into t3 values (null,null,null);ERROR 1048 (23000): Column 'ts3' cannot be null mysql> insert...默认会为timestamp列添加 null default null属性,而且MySQL也没有为第一个timestamp字段设置该列为current timestamp值。...当timestamp 字段指定NOT NULL时,若显式插入NULL则报错提示:该字段不能为空;若不显式插入该字段且SQL_MODE不包含'NO_ZERO_DATE',则会向该列中插入'0000-00-
示例 假设在MySQL中执行一个插入操作时发生了重复键错误,那么可能会返回以下错误信息: 使用 MYSQL_error_code 表示:ERROR 1062 (23000): Duplicate entry...在这里,1062 是 MYSQL_error_code,表示重复键错误;23000 是对应的 sqlstate_value。...在这里,23000 是 sqlstate_value,表示完整性约束错误(即重复键错误);1062 是对应的MySQL错误代码。...1045:不能连接数据库,用户名或密码错误。 1048:字段不能为空。 1049:数据库不存在。 1050:数据表已存在。 1051:数据表不存在。 1054:字段不存在。...CONTINUE:表示遇到错误不处理,继续执行。 EXIT:表示遇到错误马上退出。 UNDO:表示遇到错误后撤回之前的操作,MySQL 中暂时不支持此操作。
1 | | 1 | NULL | +------+------+ 2 rows in set (0.00 sec) 结论:当NOT IN 后⾯有NULL值时,不论什么情况下,整个sql的查询结果都为空。...结论:判断是否为空只能⽤IS NULL、IS NOT NULL。...mysql> insert into test3 values (null,1); ERROR 1048 (23000): Column 'a' cannot be null 上⾯我们创建了⼀个表test3...,字段a未指定不能为空,插⼊了⼀条NULL的数据,报错原 因:a 字段的值不能为NULL,我们看⼀下表的创建语句: mysql> show create table test3; +-------+--...• 判断是否为空只能⽤IS NULL、IS NOT NULL • count(字段)⽆法统计字段为NULL的值,count(*)可以统计值为null的⾏ • 当字段为主键的时候,字段会⾃动设置为not
2017-08-18 14:17:47 357305 [Warning] Slave: Column 'modified' cannot be null Error_code: 1048 2017-08...We stopped at log 'mysql-bin.000233' position 879369308 初步分析: 通过日志信息可知,modified字段插入了null值,与表声明的not null...冲突,导致错误引起复制中断。...通过以上信息可知,modified列插入null值会报错:ERROR 1048 (23000): Column 'modified' cannot be null。但是为什么一级从库没有报错呢?...解决: 修改二级从库explicit_defaults_for_timestamp=0,往timestamp数据类型列插入null值时,会自动为该列设置为current time(需要重启mysql服务后恢复
常见的约束有哪些: 非空约束(not null):约束的字段不能为NULL 唯一约束(unique):约束的字段不能重复 主键约束(primary key):约束的字段既不能为NULL,也不能重复...非空约束:not null 给字段添加非空约束: drop table if exists t_user; create table t_user( id int, username varchar...,因为在创建表时给username字段添加了非空约束,所以此字段值不能为空!!...not null约束只有列级约束。没有表级约束。...给两个列或者多个列添加unique drop table if exists t_user; create table t_user( id int, usercode varchar
创建方式: -- 建表时添加非空约束 CREATE TABLE student ( id INT NOT NULL, name VARCHAR(50) NOT NULL -- 用户名不能为空...); 行为特性: 插入记录时,必须为非空列提供具体值,否则会抛出ERROR 1048 (23000): Column 'username' cannot be null 修改记录时,不能将非空列的值设置为...NULL 可以通过DESCRIBE命令查看列的非空属性,"Null"列显示"NO"表示非空约束生效: 可以通过DESCRIBE命令查看列的非空属性,"Null"列显示"NO"表示非空约束生效...这个时候null列: NO表示当前列不能为空 YES 表示当前列可以为空 注意事项: 非空约束是最基础的约束类型,应优先为关键业务字段添加 对于可选信息(如用户的昵称、备注)不应设置非空约束 MySQL...中,字符串类型的非空列如果未指定默认值,插入时必须显式提供值 2.