文章目录
已创建成功的数据表 b 数据信息如下:
filed | type | null | key | … |
---|---|---|---|---|
id | int(10) | yes | - | … |
name | varchar(20) | yes | - | … |
user_id | int(15) | no | pri | … |
- 预先插入一条记录
insert into b values(1,'张三',10);
下面的操作都在此基础上进行
1.insert into
插入主键重复数据会报错
insert into b values(2,'李四',10);
ERROR 1062 (23000): Duplicate entry ‘10’ for key ‘PRIMARY’;
由于新插入数据的主键列user_id与已存数据重复,所以报错,无法成功插入。
2.replace into
插入主键重复数据会替换原数据
replace into b values(2,'李四',10);
- select * from b:
id | name | user_id |
---|---|---|
2 | 李四 | 10 |
与新数据相同主键列的记录已经被整条替换
3.insert ignore into
插入主键重复数据会忽略当前插入的新数据
insert ignore into b values(2,'王五',10);
- select * from b:
id | name | user_id |
---|---|---|
2 | 李四 | 10 |
可以看到表中数据没有发生改变,新插入的数据被忽略掉了。