2011-07-20 16 views
0

ファイルから外部キー制約のあるテーブルにデータをロードする必要があります。私は、親テーブルが設定されている場合、どのように私は子供のための適切な外部キーを見つけることができます子供を設定したい。 I.従業員表に従業員表にfk_department_idが含まれているが、部門に関する他の識別情報がない場合は、その従業員がどの部門に属しているかをどのように知ることができますか。私は、従業員表の部署(部署名など)に関する情報を識別し、適切なfkを取得するためにjoinを使用する一時的な表を使用することを考えていました。その後、データベースに追加の列を指定せずにその情報を入れてください。しかし、それを行う最良の方法ではないと思います。元ファイルから外部キー制約付きのMySQLテーブルにデータをロードする

答えて

1

まずロード部門表のデータ、及び後の従業員の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ではそれを使用しています
関連する問題