Я пытаюсь вставить данные в 2 таблицы (пользователи и права с уникальным ограничением users.name), используя транзакции, поэтому я получил SQL файл, подобный следующему:
START TRANSACTION;
INSERT INTO users(name, country, phone) VALUES ('toto', 'France', '0123456789');
INSERT INTO rights(user, app, isOk) VALUES('toto', 'myApp', 1);
COMMIT;
START TRANSACTION;
INSERT INTO users(name, country, phone) VALUES ('tata', 'USA', '1234567890');
INSERT INTO rights(user, app, isOk) VALUES('tata', 'myApp', 1);
COMMIT;
...
Я запускаю файл с командой:
mysql -u usr -h localhost -P 3306 -p < D:\mySqlFile.sql
Если пользователь с именем 'toto' уже существует, я получаю Дубликат записи и строки ('toto', 'France', '0123456789') и (' toto ',' myApp ', 1) не вставляются, что логично c. Но с этой повторяющейся ошибкой ввода в первой транзакции следующая транзакция (пользователь 'tata') не запускается. Пользователь 'tata' не создан, хотя он не существует ... Я знаю, что могу использовать --force, но он создаст строку ('toto', 'myApp', 1), пока я не хочу , Есть ли способ продолжить выполнение других транзакций и не остановить файл?
Спасибо за помощь!