1
我正試圖用executemany
函數插入多行。我的完整代碼在最後給出。sqlite3 python 2.7如何從sqlite3啓用更詳細的錯誤報告(例外)?
我得到的例外是
sqlite3.IntegrityError: column carname is not unique
我希望我能更詳細的錯誤報告給導致錯誤的違規值。是否有可能從sqlite3
得到更詳細的錯誤報告(例外情況),以便回饋導致錯誤的違規值? 例如,在我的代碼,下面的值是有問題的:
(0, 'Audi', 52642),
(1, 'Audi', 52642),
的carname
應該是唯一的。
或者我是否必須逐一插入值並觀察異常?
我的代碼:基於this tutorial,我在列carname上添加了UNIQUE
約束。
import sqlite3 as lite
import sys
cars = (
(0, 'Audi', 52642),
(1, 'Audi', 52642),
(2, 'Mercedes', 57127),
(3, 'Skoda', 9000),
(4, 'Volvo', 29000),
(5, 'Bentley', 350000),
(6, 'Hummer', 41400),
(7, 'Volkswagen', 21600)
)
tblstr = """CREATE TABLE cars (
carid integer PRIMARY KEY,
carname NVARCHAR(50) UNIQUE,
price integer NOT NULL
);"""
con = lite.connect('test.db')
with con:
cur = con.cursor()
cur.execute("DROP TABLE IF EXISTS Cars")
cur.execute(tblstr)
cur.executemany("INSERT INTO Cars VALUES(?, ?, ?)", cars)