Discuss / SQL / 插入或更新 和 插入或替换 有什么区别吗?怎么选择使用哪一个?

插入或更新 和 插入或替换 有什么区别吗?怎么选择使用哪一个?

Topic source

老师,插入或者更新  和  插入或者替换有什么区别吗? 在使用的时候怎么选择呢?

皮卡蝴蝶

#2 Created at ... [Delete] [Delete and Lock User]

更新后列不变,替换则可更改列数吧。

个人觉得 REPLACE INTO 是先delete 和insert 组合在一起了有就删除在添加,而INSERT INTO ... ON DUPLICATE KEY UPDATE ...  是insert  和 update 组合

id saving_date hour minutes is_energy

21116 2021-09-28 13 01:10 N

在经过

REPLACE INTO `wisdom_bank`.`energy_saving_time`(`id`, `saving_date`,  `minutes`, `is_energy`) VALUES (21116, '2021-09-28', '01:10', 'N');

id saving_date hour minutes is_energy

21116 2021-09-28 01:10 N

字段hour13不见了 所以在不确定的情况下慎用REPLACE INTO以防删除了有用数据

补充一点 INSERT INTO ... ON DUPLICATE KEY UPDATE的执行效率要高于REPLACE INTO

以及

INSERT INTO `energy_saving_time`(`id`, `saving_date`, `hour`, `minutes`, `is_energy`) VALUES (21116, '2021-09-28', 13, '01:10', 'Y'),(21117, '2021-09-28', 13,'01:15','Y')

ON DUPLICATE KEY UPDATE is_energy = VALUES(is_energy)

一样可以实现多条数据同时修改

Tiko_T

#5 Created at ... [Delete] [Delete and Lock User]

插入或更新给了两组数据,没有用INSERT的,有的话用UPDATE的。

插入或替换,只有一组数据。

含义很明显,如果有的话更新为的数据和没有时新插入的数据不一样就用前者,如果数据一样,那两者效果是一致的。


  • 1

Reply