mysql插入更新语句

mysql自己的插入更新方法--on duplicate key update。

例如:创建表create table test_t (id int primary key, name varchar(255));

插入一条数据:insert into test_t values(0,'first');

查询数据结果如图:

mysql插入更新语句

此时,如果执行语句:insert into test_t values (0,'second') on duplicate key update name = 'second';得到的结果就是把原来id为0的记录中,name字段修改为second。

再次查询数据,结果如图:

mysql插入更新语句

注意:on duplicate key update 会同时受到所有键约束影响,如果name字段设置为唯一约束,同样会生效。

mysql插入更新语句

此时执行语句insert into test_t values (1,'second') on duplicate key update name = 'third';

查询结果如图:

mysql插入更新语句

所以,这个方法的作用条件是如果有约束条件导致插入语句失败,则修改影响插入语句的那条记录。