数据的高级操作
数据的操作,无外乎增删改查。
新增数据的基本语法为:
- insert into + 表名 + [(字段列表)] + values (值列表);
在数据插入的时候,假设主键对应的值已经存在,则插入失败!这就是主键冲突。
主键冲突
当主键存在冲突(duplicate key)的时候,可以选择性的进行处理,即更新或替换。
下面,以表my_class为例,进行测试:
![](https://www.ztloo.com/wp-content/uploads/2017/12/0e2cdda5dc05f517e620ac961b3a3ae8.png)
其中,grade为主键。
第一种情况:主键冲突,进行更新操作。
- 基本语法:insert into + 表名 + [(字段列表:包含主键)] + values (值列表) on duplicate key update 字段 = 新值;
执行如下 SQL 语句,进行测试:
1
2
![](https://www.ztloo.com/wp-content/uploads/2017/12/97ec29ff23f0bf4526343c4b4e814615.png)
如上图所示,当主键已经存在的时候,产生主键冲突。再执行如下 SQL 语言,解决主键冲突的问题:
1
2
3
4
5
6
![](https://www.ztloo.com/wp-content/uploads/2017/12/c39b8eadb364d1820fe1d50fc22eccf4.png)
第二种情况:主键冲突,选择替换操作。
- 基本语法:replace insert into + 表名 + [(字段列表:包含主键)] + values (值列表);
执行如下 SQL 语句,进行测试:
1
2
![](https://www.ztloo.com/wp-content/uploads/2017/12/72ade2978a5b4b9c3c9ff93dece21cc6.png)
如上图所示,当主键已经存在的时候,产生主键冲突。再执行如下 SQL 语言,解决主键冲突的问题:
1
2
![](https://www.ztloo.com/wp-content/uploads/2017/12/47ba892906da38961de6ffcacfa0f0c0.png)
通过以上两种情况的演示,当再发生主键冲突的时候,咱们已经可以从容应对并解决啦!
温馨提示:符号[]括起来的内容,表示可选项;符号+,则表示连接的意思。