如何有效地将mysql表拆分为多个表(拆分列不在行上)?

时间:2018-05-11 21:39:49

标签: mysql database

例如

旧表: EmployeeID |员工姓名|角色| DepartmentID |部门名称|部门地址

要拆分为

表1:员工ID |员工姓名|角色| DepartmentID的

表2: DepartmentID |部门名称|部门地址

这是为了将旧数据库中存在的数据迁移到新数据库,我希望有一个更好的模式来避免冗余数据 我知道使用INSERT和SELECT查询为每个表编写查询的直接方法,但我可能会遗漏一些数据。有没有经过验证的方法呢?

1 个答案:

答案 0 :(得分:0)

DepartmentID是唯一ID的基础上,您可以使用SELECT DISTINCT从旧表中获取所有唯一的部门ID,例如

SELECT DISTINCT DepartmentID FROM Old_Table;

MySQL documentation中提供了有关distinct关键字的更多信息。

您可能遇到的一个问题是,相同的DepartmentID可能在您的数据库中具有不同的部门名称和部门地址值。这是因为您在数据库中具有传递依赖性;我们的目标是通过遵守普通形式来避免。

不幸的是,解决此问题可能需要手动验证和清理数据,以确保“部门名称”和“部门地址”字段的一致性。