В Python я заполняю базу данных SQLITE с помощью importmany, таким образом, я могу импортировать десятки тысяч строк данных сразу. Мои данные содержатся как список кортежей. Мне настраивали мою базу данных с первичными ключами, где я хотел их.
Проблемой, с которой я столкнулся, были ошибки первичного ключа, подбросит 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 я не могу скопировать и вставить весь код этой сети, любая справка значительно ценилась бы. Прямо сейчас у меня нет набора PKs как работы вокруг...
Вы можете использовать lastrowid
, чтобы получить точку, где вы остановились:
http://docs.python.org/library/sqlite3.html#sqlite3.Cursor.lastrowid
Если вы используете его, однако, вы не можете использовать executemany
.