Будут ли отменены все операции вставки, выполненные при использовании LOAD DATA INFILE, в случае неудачи? - PullRequest
1 голос
/ 21 сентября 2011

Я использую LOAD DATA INFILE из C #, используя объект MySQLBulkLoader MySQL, Connector для .NET, чтобы загрузить 24 ГБ данных в таблицу MySQL 5.5.

Мне интересно, будет ли в случае сбоя (по любой причине, даже предупреждения) массовая вставка должным образом откатиться, как если бы она была сделана в транзакции, или я должен ожидать уже увидеть первые успешные записи поручены.

Соответствующая страница в руководстве по MySQL не очень информативна в этом отношении.

1 Ответ

2 голосов
/ 26 сентября 2011

MySQL в режиме автоматической фиксации (по умолчанию) пытается обернуть каждый отдельный оператор в свою собственную транзакцию.

Если вы используете InnoDB, тогда да
Если вы используете MyISAM, тогда нет

...