比如定义如下表:
---------- ------------- ------ ----- --------- ----------------
| Field | Type | Null | Key | Default | Extra |
---------- ------------- ------ ----- --------- ----------------
| code_id | int(11) | | PRI | NULL | auto_increment |
| country | varchar(50) | YES | | NULL | |
| province | varchar(50) | YES | | NULL | |
| c_code | varchar(8) | YES | | NULL | |
| p_code | varchar(8) | YES | | NULL | |
---------- ------------- ------ ----- --------- ----------------
执行如下语句插入一条数据:
insert into code values(1,'china','nanjing','86','25');
如果再执行一遍
insert into code values(1,'china','nanjing','86','25');
则会报如下错误:ERROR 1062 (23000): Duplicate entry '1' for key 1
此时如果加上ignore关键字,则就不会报错:
insert ignore into code values(1,'china1', 'nanjing1','0086','025');
执行结果:Query OK, 0 rows affected (0.00 sec)
虽然使用了ignore关键字,但是记录不会被覆盖。
mysql> select * from code;
--------- --------- ---------- -------- --------
| code_id | country | province | c_code | p_code |
--------- --------- ---------- -------- --------
| 1 | china | nanjing | 86 | 25 |
--------- --------- ---------- -------- --------
1 row in set (0.00 sec)