Disons que nous obtenons les données suivantes à partir d'un fichier CSV:Insertion de données dans des tables séparées rapidement et de manière fiable
account_number balance customer name
100 500.00 GERN BLANSTON
101 800.00 GERN BLANSTON
102 200.00 OPRAH WINFREY
Cela représente deux comptes appartenant à Gern Blanston et une appartenance à Oprah Winfrey. Disons que nous avons une table customer
et une table account
. Nous pourrions hypothétiquement insérer les données en utilisant seulement deux INSERT
déclarations:
INSERT INTO customer
(name)
VALUES
('GERN BLANSTON'),
('OPRAH WINFREY')
et
INSERT INTO account
(account_number, balance, customer_id)
VALUES
(100, 500.00, ???),
(101, 800.00, ???),
(102, 200.00, ???)
Si nous savions que les ID Gern Blanston et Oprah Winfrey, nous pourrions bien sûr utiliser ces ID dans la deuxième INSERT
déclaration et cela fonctionnerait bien. Mais d'une manière ou d'une autre, nous devons obtenir ces identifiants.
Ma question: existe-t-il un moyen rapide de trouver, ou du moins de garder une trace, des identifiants de chaque client inséré? Insérer chaque ligne individuellement et obtenir LAST_INSERT_ID()
est trop lent pour moi (j'ai jusqu'à 65 000 comptes dans chaque fichier CSV). Rechercher l'identifiant client chaque fois que j'insère un nouveau compte est trop lent. Ou, si vous voulez contourner cette question particulière et recommander une solution différente, je suis ouvert à cela aussi. J'utilise MySQL.
+1 pour la référence Steve Martin. :) –