我在 MYSQL 工作台数据库中有一个表 PARTY,列 party_id 是主键,非空且唯一
Party_id Name Currency
10080 Person INR
10081 Party_GP USD
我在 excel 中有以下数据,我将通过宏上传这些数据(此处 party_id 将为空)
Party_id Name Currency
Party_group GBP
Company USD
Person INR
我有将 excel 数据上传到 MYSQL 数据库的宏代码。因为这里 party_id 是 null ,我无法将记录插入数据库。我需要宏代码从数据库的表 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
最佳答案
我在尝试将 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 <code>PARTY</code> (<code>Name</code>, <code>Currency</code>) VALUES (<code>Party_group</code>, <code>GBP</code>);
INSERT INTO <code>PARTY</code> (<code>Name</code>, <code>Currency</code>) VALUES (<code>Company</code>, <code>USD</code>);
INSERT INTO <code>PARTY</code> (<code>Name</code>, <code>Currency</code>) VALUES (<code>Person</code>, <code>INR</code>);
只要 pasty_id 设置为自动递增,它应该更新到最高值 +1
关于php - 通过excel上传数据到Db,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28345155/