我尝试在一个MySQL查询中插入,更新和删除所有内容。我有一个DB,大约有100条带主键的记录。我是从CSV文件更新数据库的。我想要发生的是,如果记录在csv中而不在db中,则添加它。如果它在db和csv中,请更新它。如果它在数据库中而不在csv中,则将其删除。我有插入和更新部分工作,但我挂了删除部分。
到目前为止,这是我的查询:
INSERT INTO mydb
(tourID,agent) VALUES (:tourID,:agent)
ON DUPLICATE KEY UPDATE
tourID=:tourID
是否有类似“非重复密钥删除”的内容'?
答案 0 :(得分:0)
这是一些伪代码:
INSERT INTO
查询。 DELETE FROM mydb WHERE tourID NOT IN (comma-separated list of tourIDs from CSV)
如何提出comma-separated list of tourIDs from CSV
取决于您处理CSV文件的方式。
答案 1 :(得分:0)
有一个名为" toDelete"的额外列。在事务开始时,将所有行设置为true。更新行时,将其设置为false。完成后,删除toDelete仍然为true的每一行。