我希望能够使用“替换为”语句更新相同架构的表。最后,我需要能够使用可能已更改的值更新大型表。
这是我用来开始的查询:
REPLACE INTO table_name (visual, inspection_status, inspector_name, gelpak_name, gelpak_location), VALUES (3, 'Partially Inspected', 'Me', 'GP1234', 'A01');
我不明白的是,数据库引擎如何知道什么是重复行,什么不是?这些数据非常重要,我不能冒险破坏数据。是否简单如“如果列出的所有列都具有相同的值,它就是重复的行”?
我只是想找出一种有效的方法来执行此操作,因此我可以在一分钟内更新> 45,000行。
如文档所述:
REPLACE的工作方式与INSERT完全相同,不同之处在于,如果表中的旧行与PRIMARY KEY或UNIQUE索引的新行具有相同的值,则在插入新行之前会删除该旧行。