Я вставляю несколько тысяч рядов в таблицу с уникальным ограничением, используя cursor.executeman () . В некоторых случаях данные могут иметь дубликат, который нарушает ограничение, а SQLite бросает целостность Исключение.
Есть ли способ определить, какая строка вызвала нарушение?import sqlite3
conn = sqlite3.connect(':memory:')
#Create table
cursor = conn.cursor()
cursor.execute('CREATE TABLE IF NOT EXISTS test(name TEXT,UNIQUE(name))')
data = [('Larry',),('Curly',),('Moe',),('Larry',)]
try:
cursor.executemany('INSERT INTO test VALUES(?)',data)
print('{0} rows inserted'.format(cursor.rowcount))
except sqlite3.IntegrityError as ie:
print('Exception:',ie)
< /code>
, который приводит к: < /p>
Exception: UNIQUE constraint failed: test.name
< /code>
, как и ожидалось. Но как я могу определить, что именно дубликат строка «Ларри» нарушил уникальное ограничение? Или мне просто нужно вставить ряды по одному?
Подробнее здесь: https://stackoverflow.com/questions/795 ... r-executem
Определение, какая строка вызывает исключение целостности при использовании cursor.executemany () для вставки данных ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Ошибка ORA-01036 на executemany () oracledb в запросе обновления Python
Anonymous » » в форуме Python - 0 Ответы
- 3 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Ошибка ORA-01036 на executemany () oracledb в запросе обновления Python
Anonymous » » в форуме Python - 0 Ответы
- 4 Просмотры
-
Последнее сообщение Anonymous
-