使用外键约束将数据从文件加载到MySQL表中

时间:2011-07-20 20:15:54

标签: mysql

我需要将文件中的数据加载到具有外键约束的表中。如果我填充了父表并希望填充子项,我如何为子项找到适当的外键。 I.E.如果我有一个部门和员工表,其中员工包含fk_department_id但没有关于部门的其他识别信息,我如何知道该员工属于哪个部门。我正在考虑使用临时表,其中包含员工表中有关部门的标识信息(如部门名称),并使用连接来获取适当的fk。然后将没有额外标识列的信息放入数据库中,但我认为这不是最好的方法。

1 个答案:

答案 0 :(得分:1)

首先加载department表的数据,然后在employee csv中使用部门名称执行以下操作,例如:

Department csv: DeptName, Manager ("Finance","Ted Smith")

Department table: de_id, de_name, de_manager

Emplstrong textoyee csv: Name, Surname, DeptName ("Tom", "Smith", "Finance")

Employee table: em_id, em_name, em_surname, em_de_id

LOAD DATA LOW_PRIORITY LOCAL INFILE 'C:\\Temp\\Employee.csv' INTO TABLE `tbl_employees` 
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '"' LINES TERMINATED BY '\r\n' 

(em_name, em_surname,  @ColVar3) 
SET `em_de_id` = (SELECT de_id FROM tbl_departments WHERE de_name = @ColVar3)

我在mySQL 5.1中使用过它