5

我正在从旧的培训跟踪系统迁移数据,并且正在使用 MySQL 为新的培训跟踪系统格式化数据。

我有一个包含 550 万行的表,它是旧系统的主数据集。我还有一个表,其中包含大约 49,000 行之前已迁移。

我要做的是比较这两个表并从主数据文件中删除以前迁移的记录(我不想在新系统中创建重复的记录。)

为了进行比较,我需要比较 3 个字段(employee_id、course_code 和 completion_date)。我正在使用以下 SQL 语句,但它只是静止不动。我不知道它是否有效并且需要很长时间,或者它是否真的无效。

DELETE master_data.*
FROM master_data
INNER JOIN alreadyMigrated
ON master_data.employee_id = alreadyMigrated.employee_id 
AND master_data.course_code = alreadyMigrated.course_code
AND master_data.completion_date = alreadyMigrated.completion_date;

我也不知道索引是否有帮助。任何帮助,将不胜感激。谢谢。

4

1 回答 1

3

您只需要指定表名,而不是列。

DELETE master_data
       FROM master_data
       INNER JOIN alreadyMigrated
          ON master_data.employee_id = alreadyMigrated.employee_id AND 
             master_data.course_code = alreadyMigrated.course_code AND 
             master_data.completion_date = alreadyMigrated.completion_date;
于 2012-10-08T03:22:07.493 回答