将Excel表导出到关系表MySQL

时间:2014-02-17 13:14:12

标签: mysql excel export

我在MySQL数据库中有这些表:

  

用户(ID,名称,ID_country)

     

国家/地区(ID,country_name)

在Excel中,我就像这张表一样:

╔════╦═════════╦═══════════╗
║ ID ║  Name   ║  Country  ║
╠════╬═════════╬═══════════╣
║  1 ║ Yamashi ║ Japon     ║
║  2 ║ Mary    ║ Australie ║
╚════╩═════════╩═══════════╝

我在excel中有一百行,我想将它们导出到MySQL中,使用加载csv数据如果我在MySQL数据库和Excel表中有相同的表,那将很简单。 那么最好的方法是什么?任何的建议都受欢迎!感谢。

1 个答案:

答案 0 :(得分:1)

首先将所有csv数据加载到新的临时sql( temp_table (ID,Name,Country))表中。然后填写国家表执行此:

INSERT INTO Countries (country_name)
SELECT DISTINCT Country FROM temp_table

然后使用此查询填充您的用户表:

INSERT INTO User (ID,Name)
SELECT ID,Name FROM temp_table

最后,要创建国家和用户之间的关系,请执行以下操作:

UPDATE User,temp_table,Country SET ID_country = Countries.ID WHERE User.ID = temp_table.ID AND temp_table.Country = Countries.Country

如果一切正常,您现在可以安全地删除temp_table

DROP TABLE temp_table