В python я заполняю базу данных SQLITE с помощью importmany, поэтому я могу импортировать сразу десятки тысяч строк данных. Мои данные содержатся в виде списка кортежей. У меня была база данных с основными ключами, где я их хотел.Продолжить загрузку после IntegrityError
Проблема Я столкнулся с ошибками первичного ключа, которые вызовут IntegrityError. Если я обрабатываю исключение, мой скрипт перестает импортировать в конфликте первичного ключа.
попробовать:
try:
self.curs.executemany("INSERT into towers values (NULL,?,?,?,?)",self.insertList)
except IntegrityError:
print "Primary key error"
conn.commit()
Так что мои вопросы, в Python с использованием ImportMany можно:
1. Захват значения, которые нарушают первичный ключ?
2. Продолжайте загружать данные после получения моих первичных ошибок.
Я понимаю, почему он не продолжает загружаться, потому что после исключения я передаю данные в базу данных. Я не знаю, как продолжить, где я остановился.
Unforutnley Я не могу скопировать и вставить весь код в этой сети, любая помощь будет принята с благодарностью. Сейчас у меня нет никаких установленных первичных ключей как работа вокруг ...
Как я понимаю, 'executemany' существует, потому что он предлагает значительное увеличение скорости по сравнению с python-итерированными командами' execute'. Таким образом, ваше решение, хотя оно будет работать, значительно замедлит огромный импорт данных. Одним из решений было бы отслеживать первичные ключи, которые были добавлены в набор python, и предварительно фильтровать insertList перед подачей на курсор. –
@PeterMcMahan OK Я согласен. Это не эффективный код. Он только «работает», как вы сказали. – jheyse