mysql ignore error_mysql 中insert 与 insert ignore 插入 NULL '' 测试

1、在项目中遇到insert into 与 insert ignore 引发了不可控的事情,导致在目标库内查询不到NULL数据

官方说法:

3dba794ad9c24f34de43831a4b5cd596.png

不阻止错误的insert,并且不会更新原有数据

1) 建表,含主键以及列 id 不允许为空

mysql> create table tbpx (

-> id int auto_increment primary key NOT NULL,

-> name varchar(32) NOT NULL,

-> age int(10) DEFAULT NULL

-> )engine=innodb default charset=utf8;

Query OK, 0 rows affected (1.01 sec)

f88dbeec549e65e800c5cdb268f5a0e0.png

2) 使用insert插入数据

mysql> insert into tbpx values ('1','xiaoming','20');

Query OK, 1 row affected (0.10 sec)

fb2acb90767a0ef0b3126e8c85801709.png

3) 使用insert ignore 插入数据,对于发生错误的不理会。但是不会被插入

mysql> insert into tbpx values ('1','xiaoming1','21');

ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY'

mysql> insert ignore into tbpx values ('1','xiaoming1','21');

Query OK, 0 rows affected, 1 warning (0.00 sec)

4) 使用insert ignore 插入 NULL 空数据

mysql> insert ignore into tbpx values ('NULL','NULL','NULL');

Query OK, 1 row affected, 2 warnings (0.23 sec)

mysql> insert ignore into tbpx values ('','','');

Query OK, 1 row affected, 2 warnings (0.25 sec)

6beda0582120bdc70b5dfcf6ed7e91fb.png

5) 查询结果:

0593b252e07979e099dd6e8673aec2c7.png

表结构不允许为NULL,然后ignore插入了NULL,在select执行时无法按NULL条件查询

111751839a5e23ef7fc8dd006d2533fe.png

可通过以下语句查询:

select name from tbpx where name not in ('','xiaoming');

af979ea0a5c130fe6ecec855237199d5.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值