我正在使用Python's sqlite3 wrappers:
我有一个用我创建的表:
CREATE TABLE IF NOT EXISTS patientsname (
id INTEGER PRIMARY KEY AUTOINCREMENT,
original,
cleaned,
study INTEGER,
UNIQUE(original, study),
FOREIGN KEY(study) REFERENCES studyinstanceuid(id)
)
如果我尝试为同一(original, id)
插入多个时间,我通常会得到:
IntegrityError: UNIQUE constraint failed: patientsname.original, patientsname.study
每隔一段时间我就会得到(我在OSX上看到过):
OperationalError: UNIQUE constraint failed: patientsname.original, patientsname.study
并在Linux上看到:
DatabaseError: UNIQUE constraint failed: patientsname.original, patientsname.study
捕获唯一约束违规的正确方法是什么?
更新。看到OperationalError
:
>>> sqlite3.sqlite_version
'3.8.2'
>>> sqlite3.version
'2.6.0'
和
>>> sqlite3.sqlite_version
'3.8.7.4'
>>> sqlite3.version
'2.6.0'