Если я выполню команду SQL
INSERT INTO my_table VALUES (?);
с ограничением
CREATE my_table(
user_name VARCHAR(255) PRIMARY KEY
);
Используя команду executemany()
sqlite3 в списке ['a', 'b', 'c', 'd', 'e', 'f', 'a', 'b', 'g', 'h', 'i']
, я получуsqlite3.IntegrityError
.
У меня есть несколько вопросов о поведении executemany()
, когда он сталкивается с этой ошибкой, и мне не удалось найти какую-либо документацию по поведению.
1) Естьзначения, вставленные до исключения, всегда целы?
2) Есть ли случаи, когда значения после могут возникать исключения?
3) Есть ли способ определить, какие значения вызывают исключение?(Лучшее, что я могу придумать, - это обернуть список в генераторе, чтобы отслеживать состояние, регистрировать записи о проблемах и повторять попытку на остальной части генератора, пока весь список не будет использован.)