MySql加载文件脚本和2个表

MySql加载文件脚本和2个表,mysql,Mysql,所以我有两个表,一个是像 ContactId BigInt PK Name varchar Phone varchar Address varchar 还有第二个卖桌子的 CompanyName varchar ContactId BigIn FK 我希望将供应商加载到表中,以便 当我加载带有CSV的供应商时,它会将他们放在联系人表中,并将他们加载到供应商表中 123423234, bob smith, 333-444-5555, 123 stree dr., CompanyOne 12

所以我有两个表,一个是像

ContactId BigInt  PK
Name varchar
Phone varchar
Address varchar
还有第二个卖桌子的

CompanyName varchar
ContactId BigIn FK 
我希望将供应商加载到表中,以便 当我加载带有CSV的供应商时,它会将他们放在联系人表中,并将他们加载到供应商表中

123423234, bob smith, 333-444-5555, 123 stree dr., CompanyOne
123123234, john doe, 444-333-2222, 423 SomeStreet st., Another Company
我为帖子保留了小而简单的表格,是的,还有更多,但这里的关键是我需要使用供应商表格中联系人表格中的ContactID。我想从同一个CV加载它们。如果只有一张桌子,我知道怎么做,但不确定有两张桌子


谢谢

您可以使用所有SQL完成这项工作,或者使用PHP等脚本语言可能需要/更简单。但这里是基本的伪代码思想

创建一个非规范化的表,使您的CSV文件可以非常直接地放入其中(我们称之为
attreable
)。然后将CSV中的数据放入其中。(这肯定需要一些脚本)

将联系人信息插入联系人表:

INSERT INTO contact (name, phone, address) (SELECT DISTINCT name, phone, address FROM tempTable);
将contactID列添加到Tentable,并通过加入以下内容使用contacts表中的ID进行更新:

UPDATE tempTable JOIN contact ON
  tempTable.name = contact.name
  AND tempTable.phone = contact.phone
  AND tempTable.address = contact.address
 SET tempTable.contactID = contact.contactID
然后插入供应商,就像我们插入联系人的方式一样:

INSERT INTO VENDOR (companyName, contactID) (SELECT company, contactID FROM tempTable);