首先,需要特别提醒大家,ON DUPLICATE KEY UPDATE 语法是MYSQL数据库独有。
ON DUPLICATE KEY UPDATE 语法的作用是:当insert一条语句的时候,如果发现该条记录已在数据库中存在,则使用Update更新相同记录中部分字段。
用法:
现有一张user表,表结构以及表数据如下:
现在如果执行如下语句:
insert into user (user_id,user_name,age,address) values ( 1,"steven",12,"山东") ON DUPLICATE KEY UPDATE user_id=1,user_name="steven",age=12,address="山东";
我们首先看一下执行结果和执行过程
从结果和执行过程中我们会发现,mysql实际上影响了两条记录,而我们也会从这个更新语句中发现,当发现相同的主键语句的时候,会去执行后面的update的语句。而我们在这里也看到,ON DUPLICATE KEY UPDATE语法很好的帮助我们解决了实际开发中数据合并的业务,当我们需要合并两个人共同完成的业务时,我们可以是它很好的解决。同时,也保证在批量处理业务上的能够更好的去执行,以往我们数据合并的时候,我们首先需要判断两表之间的数据差异,然后,在去更新,但是,现在我们可以直接使用它。不用在去手动判断数据差异问题。