CREATE TABLE `test_tab` (
`name` varchar(64) NOT NULL,
`age` int(11) NOT NULL,
PRIMARY KEY (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2.插入一条数据
复制代码 代码如下:
insert into `test_tab` (`name`,`age`) values ('zhangsan',24)
当前test_tab表的数据为:
复制代码 代码如下:
name|age
:—-|:—
zhangsan|24
3.再执行一次步骤2的插入语句,则会报异常:
复制代码 代码如下:
[Err] 1062 - Duplicate entry 'zhangsan' for key 'PRIMARY'
4.对步骤2的insert语句增加ignore关键字,则不会报异常,已存在的数据也不会被更新。
复制代码 代码如下:
insert IGNORE into `test_tab` (`name`,`age`) values ('zhangsan',24) ;
当前test_tab表的数据为:
复制代码 代码如下:
name|age
:—-|:—
zhangsan|24
不存在则插入,存在则更新,其一(使用DUPLICATE KEY UPDATE关键字)
在insert语句中使用ON DUPLICATE KEY UPDATE关键字实现数据不存在则插入,存在则更新的操作。判断数据重复的逻辑依然是主键冲突或者唯一键冲突。
官网上的相关介绍如下: