本文主要是介绍mysql更新表时同时插入的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
mysql更新表中的字段时,存在的字段更新,不存在的字段插入mysql表中,有三种方法实现:
1.update时select一下,有数据update,没数据insert ( ps:效率不高,没必要的操作。)
2.使用replace into操作
replace into tbl_name(col_name, ...) values(...)
操作已存在的数据时(根据主键和唯一索引判断),会先删掉原有数据,再插入一条。使用replace into操作的数据表必须具有主键或唯一索引,否则会直接插入数据。当表中即存在主键又存在唯一索引时,会将主键与唯一索引对应的数据删掉重新插入数据。如下图:
数据库表:
操作结果:
3.使用ON DUPLICATE KEY UPDATE。
INSERT INTO user_info (***,***,***) VALUES (?,?,?) ON DUPLICATE KEY UPDATE **= ?,**= ?;
存在则使用后面的update更新,不存在则使用insert into。update与insert后面不能添加where语句,但是可以使用IF语句加上条件的判断充当where语句,如下:
INSERT INTO user_info (***,***,***) VALUES (?,?,?) ON DUPLICATE KEY UPDATE **= IF(判断条件,true时的值,false的值),**= IF(判断条件,true时的值,false的值);
这篇关于mysql更新表时同时插入的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!