簡體   English   中英

在 python 中跳過唯一 ID 列(這是主鍵)時,無法將數據插入 SQLite 表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM