Продолжить SQL-запрос даже при ошибках в MySQL Workbench - PullRequest
49 голосов
/ 20 марта 2011

Я использую MySQL, чтобы импортировать файл Joomla sample_data.sql в мою локальную базу данных.Я хочу, чтобы он продолжал импортировать, даже если произошла ошибка, пропустив строку, вызвавшую ошибку.

Есть ли что-то, с чем я могу добавить префикс SQL, чтобы предотвратить остановку запроса при любых ошибках?

Ответы [ 3 ]

81 голосов
/ 20 марта 2011

1001 * попробовать *

mysql --force < sample_data.sql 

В справочном разделе Mysql написано

 -f, --force         Continue even if we get an sql error.
34 голосов
/ 17 апреля 2014

Вы также можете использовать 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
31 голосов
/ 20 марта 2011

В MySQL Workbench я снял флажок в поле «Запросить« Остановить выполнение скрипта при ошибках »»:

enter image description here

Похоже, что ответ Зимбабао также будет работать.1007 *

В более новых версиях используйте «Переключить, следует ли продолжать выполнение сценария SQL после неудачных операторов»

Toggle whether execution of SQL script should continue after failed statements

...