mysql插入更新语句
mysql自己的插入更新方法--on duplicate key update。
例如:创建表create table test_t (id int primary key, name varchar(255));
插入一条数据:insert into test_t values(0,'first');
查询数据结果如图:
此时,如果执行语句:insert into test_t values (0,'second') on duplicate key update name = 'second';得到的结果就是把原来id为0的记录中,name字段修改为second。
再次查询数据,结果如图:
注意:on duplicate key update 会同时受到所有键约束影响,如果name字段设置为唯一约束,同样会生效。
此时执行语句insert into test_t values (1,'second') on duplicate key update name = 'third';
查询结果如图:
所以,这个方法的作用条件是如果有约束条件导致插入语句失败,则修改影响插入语句的那条记录。