替换成和插入重复键区别
<人力资源/><强>替换的用法强>
当不冲突时相当于插入,其余列默认值
引用>
当关键冲突时,自增列更新,取代冲突列,其余列默认值
Com_replace会加1
Innodb_rows_updated会加1<强>插入…重复关键的用法强>
不冲突时相当于插入,其余列默认值
引用>
当与关键冲突时,只更新相应字段值。
Com_insert会加1
Innodb_rows_inserted会增加1实验展示
<人力资源/><强>表结构强>
创建表helei1 (
引用>
id int(10)无符号NOT NULL AUTO_INCREMENT,
名称varchar (20) NOT NULL默认”,
年龄非常小的整数(3)无符号NOT NULL默认0
主键(id),
唯一键<代码> uk_name 代码>(<代码>名称> 代码)
)
引擎=innodb AUTO_INCREMENT=1
默认字符集=utf8;
& lt;/br><强>表数据强>
root@127.0.0.1 (helei)比;select * from helei1;
引用>
+——+ + - - - - - - - - - - - - - - - - - - - - +
| | id名称| |年龄
+——+ + - - - - - - - - - - - - - - - - - - - - +
| 1 |贺磊| 26 |
| 2 |小明| | 28日
| 3 |小红| 26 |
+——+ + - - - - - - - - - - - - - - - - - - - - +
3行组(0.00秒)<强>替换成用法强>
root@127.0.0.1 (helei)比;替换成helei1(名字)值(“贺磊”);
查询好,2行影响(0.00秒)root@127.0.0.1 (helei)比;select * from helei1;
+——+ + - - - - - - - - - - - - - - - - - - - - +
| | id名称| |年龄
+——+ + - - - - - - - - - - - - - - - - - - - - +
| 2 |小明| | 28日
| 3 |小红| 26 |
| 4 |贺磊| 0 |
+——+ + - - - - - - - - - - - - - - - - - - - - +
3行组(0.00秒)
root@127.0.0.1 (helei)比;替换成helei1(名字)值(“爱璇”);
查询好了,1行影响(0.00秒)root@127.0.0.1 (helei)比;select * from helei1;
引用>
+——+ + - - - - - - - - - - - - - - - - - - - - +
| | id名称| |年龄
+——+ + - - - - - - - - - - - - - - - - - - - - +
| 2 |小明| | 28日
| 3 |小红| 26 |
| 4 |贺磊| 0 |
| 5 |爱璇| 0 |
+——+ + - - - - - - - - - - - - - - - - - - - - +
4行组(0.00秒)替换的用法
当没有关键冲突时,替换成相当于插入,其余列默认值
当关键冲突时,自增列更新,取代冲突列,其余列默认值<强>插入…复制键:强>
root@127.0.0.1 (helei)比;select * from helei1;
+——+ + - - - - - - - - - - - - - - - - - - - - +
| | id名称| |年龄
+——+ + - - - - - - - - - - - - - - - - - - - - +
| 2 |小明| | 28日
| 3 |小红| 26 |
| 4 |贺磊| 0 |
| 5 |爱璇| 0 |
+——+ + - - - - - - - - - - - - - - - - - - - - +
4行组(0.00秒)root@127.0.0.1 (helei)比;插入helei1(姓名、年龄)值(“贺磊”,0)复制关键更新年龄=100;
查询好,2行影响(0.00秒)root@127.0.0.1 (helei)比;select * from helei1;
+——+ + - - - - - - - - - - - - - - - - - - - - +
| | id名称| |年龄
+——+ + - - - - - - - - - - - - - - - - - - - - +
| 2 |小明| | 28日
| 3 |小红| 26 |
| 4 |贺磊| 100 |
| 5 |爱璇| 0 |
+——+ + - - - - - - - - - - - - - - - - - - - - +
4行组(0.00秒)root@127.0.0.1 (helei)比;select * from helei1;
+——+ + - - - - - - - - - - - - - - - - - - - - +
| | id名称| |年龄
+——+ + - - - - - - - - - - - - - - - - - - - - +
| 2 |小明| | 28日
| 3 |小红| 26 |
| 4 |贺磊| 100 |
| 5 |爱璇| 0 |
+——+ + - - - - - - - - - - - - - - - - - - - - +
4行组(0.00秒)root@127.0.0.1 (helei)比;插入helei1(名字)值(“爱璇”)在复制关键更新年龄=120;
查询好,2行影响(0.01秒)root@127.0.0.1 (helei)比;select * from helei1;
+——+ + - - - - - - - - - - - - - - - - - - - - +
| | id名称| |年龄
+——+ + - - - - - - - - - - - - - - - - - - - - +
| 2 |小明| | 28日
| 3 |小红| 26 |
| 4 |贺磊| 100 |
| 5 |爱璇| 120 |
+——+ + - - - - - - - - - - - - - - - - - - - - +
4行组(0.00秒)root@127.0.0.1 (helei)比;插入helei1(名字)值(“不存在的)复制关键更新年龄=80;
查询好了,1行影响(0.00秒)root@127.0.0.1 (helei)比;select * from helei1;
避免MySQL替换逻辑SQL的坑爹操作