web-dev-qa-db-fra.com

Poursuivre la requête SQL même sur les erreurs dans le plan de travail MySQL

J'utilise MySQL Workbench pour importer un fichier Joomla sample_data.sql dans ma base de données locale. Je souhaite qu'il poursuive l'importation, même en cas d'erreur, en sautant la ligne à l'origine de l'erreur.

Y a-t-il quelque chose avec lequel je peux préfixer le SQL pour empêcher la requête de s'arrêter en cas d'erreur?

51
Steve

Dans MySQL Workbench, j'ai décoché l'option sous Query pour "Stop Script Execution on Errors":

enter image description here

Il semble que la réponse du Zimbabwe fonctionnera également.


Dans les versions plus récentes, utilisez 'Activer ou désactiver l'exécution du script SQL après les instructions ayant échoué'

Toggle whether execution of SQL script should continue after failed statements

32
Steve

essayer

mysql --force < sample_data.sql 

La section d'aide de Mysql indique

 -f, --force         Continue even if we get an sql error.
82
Zimbabao

Vous pouvez également utiliser INSERT IGNORE

INSERT IGNORE INTO mytable
 (primaryKey, field1, field2)
VALUES
 ('1', 1, 2),
 ('1', 3, 4), //will not be inserted
 ('2', 5, 6); //will be inserted
35