Python Glossary English

все Python 3sqlite3исключение

sqlite3.IntegrityError

исключения

Нарушена целостность данных в БД: UNIQUE, NOT NULL, проверка внешнего ключа (подкласс sqlite3.DatabaseError).

Синтаксис

raise sqlite3.IntegrityError

Это ошибка данных, а не кода: повтор того же запроса даст тот же результат, поэтому либо чините входные данные, либо заранее пишите INSERT OR IGNORE / ON CONFLICT. Отдельная ловушка SQLite: внешние ключи по умолчанию не проверяются — без PRAGMA foreign_keys = ON, выполненного для каждого соединения, битая ссылка запишется молча, и никакого IntegrityError вы не увидите.

Примеры

import sqlite3
con = sqlite3.connect(':memory:')
con.executescript('CREATE TABLE t(id INTEGER PRIMARY KEY); INSERT INTO t VALUES (1);')
try:
    con.execute('INSERT INTO t VALUES (1)')
except sqlite3.IntegrityError as e:
    print(type(e).__name__)   # → IntegrityError

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности