使用Join在MySQL中正确删除

时间:2016-02-24 20:31:17

标签: mysql

我正在尝试从MySQL中的表中删除数据,但在执行命令之前,我想确保我做得对。我想删除所有带有storeID>的行。 5000000并且无法与交易表中的任何项目匹配。以下是我的询问:

DELETE FROM stores s 
LEFT JOIN deals sd 
ON s.storeID = sd.store_ID 
WHERE storeID > 5000000 
AND sd.dealID IS NULL;

以上查询是否只删除stores表中的行而不影响deal表?

1 个答案:

答案 0 :(得分:1)

如果您担心从生产表中删除额外内容的查询,我建议启动开发实例并复制数据库模式。如果可能,请完整转储生产数据库并将其导入开发/测试系统。这样您就可以测试您的查询并确定其结果。

如果您想要转储数据库甚至只是数据库架构,可以使用mysqldump来生成这些。

我不认为您的查询会从交易表中移除任何内容,但我建议您检查100%确定。这不会让你在deal表中留下引用store表中不存在的storeid的行吗?