假设我们从CSV文件中获取以下数据:
account_number balance customer name
100 500.00 GERN BLANSTON
101 800.00 GERN BLANSTON
102 200.00 OPRAH WINFREY
这代表了两个属于格恩·布兰斯顿的账户和一个属于奥普拉·温弗瑞的账户。现在假设我们有一个
customer
桌子和
account
桌子。我们可以假设只使用两个
INSERT
声明:
INSERT INTO customer
(name)
VALUES
('GERN BLANSTON'),
('OPRAH WINFREY')
和
INSERT INTO account
(account_number, balance, customer_id)
VALUES
(100, 500.00, ???),
(101, 800.00, ???),
(102, 200.00, ???)
如果我们知道格恩·布兰斯顿和奥普拉·温弗瑞的身份证,我们当然可以在第二天使用这些身份证
插入
声明和它将工作良好。但不管怎样,我们得弄到那些身份证。
我的问题是:有没有一种快速的方法来发现,或者至少跟踪每个插入的客户的ID?分别插入每一行,然后获取
LAST_INSERT_ID()
对我来说太慢了(每个CSV文件中最多有65000个帐户)。每次我插入新帐户时查找客户ID也太慢。
或者,如果你想回避这个问题并推荐一个不同的解决方案,我也愿意接受。我在用MySQL。