【问题标题】:Upload CSV and replace data with foreign keys上传 CSV 并用外键替换数据
【发布时间】:2011-04-15 01:08:59
【问题描述】:

我想在我的联系人管理应用程序中通过 CSV 文件上传数据。 CSV文件结构如下:

Name, Phone, City
John Doe, 555-555-5555, New York

虽然db中的表结构是这样的:

name, phone, city_id

在数据库中,城市名称存储在另一个表中,外键在联系人表中引用。

我的问题是如何将 CSV 文件中的城市名称替换为城市 ID 以插入到数据库中。

背景信息:语言为 PHP,数据库为 MySQL

谢谢

【问题讨论】:

    标签: php mysql database file-upload csv


    【解决方案1】:

    首先加载到具有结构(姓名、电话、城市)的临时表中,然后进行适当的插入:

    Select name, phone, city_id
    from temptable t, cities c
    WHERE t.city = c.CityName
    

    【讨论】:

    • +1 用于使用临时表进行导入。在将数据插入实际表之前,您可能需要对其进行一些基本的一致性检查(即检查 CSV 中的每个城市是否已经存在于您的城市表中)。
    • 如果我在 csv 文件中有太多的记录以及超过 2 个外键列,我认为这种方法会太昂贵(在效率方面)。
    猜你喜欢
    • 2015-07-08
    • 1970-01-01
    • 1970-01-01
    • 2017-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多