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