Определение, какая строка вызывает исключение целостности при использовании cursor.executemany () для вставки данныхPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Определение, какая строка вызывает исключение целостности при использовании cursor.executemany () для вставки данных

Сообщение Anonymous »

Я вставляю несколько тысяч рядов в таблицу с уникальным ограничением, используя 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»