通过excel将数据上传到Db

时间:2015-02-05 13:26:15

标签: php mysql excel vba

我在MYSQL工作台数据库中有一个表PARTY,列party_id是主键,非空且唯一

Party_id  Name     Currency
10080     Person    INR
10081     Party_GP  USD

我在excel中有以下数据,我将通过宏上传(此处party_id将为null)

Party_id   Name         Currency 
           Party_group  GBP
           Company      USD
           Person       INR

我有用于将Excel数据上传到MYSQL DB的宏代码。因为这里party_id为null,我无法将记录插入DB。我需要宏代码从DB的表PARTY中获取最大(聚会ID)+1,并且在excel上传期间它应该在party_id的excel数据中得到更新。

上传后,DB表中的结果应该是这样的

Party_id   Name         Currency
10080     Person        INR
10081     Party_GP      USD 
10082      Party_group  GBP
10083      Company      USD
10084      Person       INR

1 个答案:

答案 0 :(得分:0)

我有一个类似的问题,试图将csv导入MySQL Workbench。我发现使用insert into语句更容易,该语句是通过连接单元格周围的命令生成的。

在工作台中,确保将主键设置为自动递增,然后我将直接复制并粘贴连接单元格的内容(下例中的D列)并运行查询。

| Party_id | Name        | Currency |                                                                          |
|----------|-------------|----------|--------------------------------------------------------------------------|
|          | Party_group | GBP      | ="INSERT INTO `PARTY`,(`Name`, `Currency`) VALUES (`"&B2&"`, `"&C2&"`);" |
|          | Company     | USD      | ="INSERT INTO `PARTY`,(`Name`, `Currency`) VALUES (`"&B3&"`, `"&C3&"`);" |
|          | Person      | INR      | ="INSERT INTO `PARTY`,(`Name`, `Currency`) VALUES (`"&B4&"`, `"&C4&"`);" |

复制列D会导致将以下内容粘贴到工作台中: INSERT INTO PARTY (Name, Currency) VALUES (Party_group, GBP); INSERT INTO PARTY (Name, Currency) VALUES (Company, USD); INSERT INTO PARTY (Name, Currency) VALUES (Person, INR);

只要pasty_id设置为自动递增,它就应该更新为最高值+1