[英]Trouble inserting data into SQLite table while skipping unique ID column (which is the primary key) in python
所以我有一個如下所示的創建表(只是更多的列太長而無法粘貼在這里):
cur.execute("""CREATE TABLE IF NOT EXISTS Income (
SS_ID INTEGER PRIMARY KEY AUTOINCREMENT,
age INTEGER,
class_of_worker TEXT,
detailed_industry_code TEXT,
eductation TEXT,
我遇到的問題是從一個大型數據庫(大約 200,000 個記錄)中插入數據,其格式如下所示(但有更多列):
73, Not in universe, 0, 0, High school graduate, 0, Not in universe, Widowed,
#with 73 corresponding to age and so on
我目前正在嘗試使用以下內容導入數據:
with open('census-income.data', 'r') as data:
no_records = 0
for row in data:
cur.execute("INSERT INTO Income VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)",
row.split(","))
census_income.commit()
no_records += 1
census_income.close()
print('\n{} Records Transfered'.format(no_records))
但是,這不起作用,因為它嘗試將年齡(數據中的第一列)導入 SS_ID(表中的第一列是主鍵並且具有 IDing 記錄的自動增量)並且我收到以下錯誤:
Exception has occurred: IntegrityError
UNIQUE constraint failed: Income.SS_ID
有沒有辦法通過將特定的數據列導入表的特定列,或者在導入所有數據時跳過第一列(SS_ID PRIMARY KEY)來導入數據?
非常感謝您的幫助,我已經為此苦苦掙扎了一段時間。
您必須枚舉將接收值的列,例如:
INSERT INTO Income (age, class_of_worker, detailed_industry_code, eductation, ....) VALUES(?,?,....)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.