我在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
答案 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