J'ai une feuille Excel avec environ 2.000 lignes que je veux insérer dans ma base de données.MySQL: Insérer si la clé étrangère existe
Le problème est que la table que je veux insérer les 2.000 lignes dans a une colonne qui fait référence à une clé étrangère dans une autre table. Malheureusement, beaucoup de requêtes échouent, car la valeur de clé étrangère fournie n'existe pas. Je sais que je peux ignorer les contrôles de clés étrangères, mais ce n'est pas ce que je veux. Je ne veux pas ignorer les contrôles de clés étrangères, je veux juste que les mauvaises requêtes ne soient pas exécutées.
Exemple:
INSERT INTO test (id, value) VALUES (10, 20);
INSERT INTO test (id, value) VALUES (20, 20);
La première requête échoue, car TEST.id
références foobar.id
et il n'y a pas foobar.id = 10.
Cependant, la deuxième requête fonctionnerait, puisque existe foobar.id = 20
, mais ne sera pas exécuté la deuxième requête, parce que le premier a déjà échoué.
Y a-t-il un moyen de ne pas avoir d'erreur sur la première requête et mes autres requêtes seront toujours exécutées?
Je pourrais écrire un script php, mais je préférerais une solution MySQL ici.
devez ajouter 1 limite, sinon chaque insert pourrait être plusieurs lignes. – MJB
@MJB Je suppose que id est la clé primaire sur 'foobar', par OP, donc le' LIMIT' * ne devrait pas être nécessaire. –
Si je le fais comme ça, il est seulement possible d'insérer des données dans "test", qui est déjà dans "foobar", n'est-ce pas? Mais j'ai de nouvelles données à ajouter, qui vient de la feuille Excel. Puis-je d'une certaine façon ajuster cela, afin que je puisse y ajouter de nouvelles données? – user375700