將兩個不同數據庫中的表合并為具有相同方案的表

我試圖將兩個數據庫合并為一個數據庫,兩個數據庫都包含相同的方案,但信息是唯一的。我已經編寫了一段代碼來將它們合并在一起,但根據是否包含“id”(兩個表中的主鍵),我會遇到一個錯誤。我已經讀到,當將表合并在一起時,我應該只維護其中一個表中的主鍵,并將其作為自動增量來設置下一個表中的主鍵。當我這樣做時,我會收到一個錯誤,說我提供的值比表中要求的少一列,但當我包含'id'時,我會收到一個唯一id'的錯誤(因為兩個程序中的主鍵完全相同)。如果有人能告訴我為什么我的主鍵沒有增加,我會非常感激。如果我描述得不好或沒有提供足夠的信息,請告訴我,我會在需要時補充。

#正在導入的表的表結構

def build_case_study_1_table():
    with sqlite3.connect('albums1.db') as db:
        db.execute(
            "CREATE TABLE IF NOT EXISTS albums(" \
            "id INTEGER PRIMARY KEY NOT NULL," \
            "nr INTEGER NOT NULL," \
            "band TEXT NOT NULL," \
            "song TEXT NOT NULL," \
            "album TEXT NOT NULL," \
            "duration TEXT NOT NULL);")

#正在合并到我的主表中的表

conn = sqlite3.connect('albums.db')
c = conn.cursor()
c.execute("""CREATE TABLE IF NOT EXISTS albums (
    id INTEGER PRIMARY KEY NOT NULL,
    nr INTERGER NOT NULL,
    band TEXT NOT NULL,
    song TEXT NOT NULL,
    album TEXT NOT NULL,
    duration TEXT NOT NULL
    )""")

#將兩者合并的代碼

def merge_databases():
    
    db_main = sqlite3.connect('albums.db')
    db_import = sqlite3.connect('albums1.db')

    import_cursor = db_import.cursor()
    import_cursor.execute('SELECT * FROM albums')
    output = import_cursor.fetchall()
    
    sql = "INSERT INTO albums (nr, band, song, album, duration) VALUES (:nr, :band, :song, :album, :duration)"
    main_cursor = db_main.cursor()
    for row in output:
        main_cursor.execute(sql, row)
        
    db_main.commit()
    import_cursor.close()
    main_cursor.close()
? 最佳回答:

您可以傳遞:id + null,它將為id列的:id + null求值為null,它將獲得適當的值,因為它被定義為INTEGER PRIMARY KEY

sql = "INSERT INTO albums VALUES (:id + null, :nr, :band, :song, :album, :duration)"
main_cursor = db_main.cursor()
for row in output:
    main_cursor.execute(sql, row)

或者,使用executemany()來避免for循環:

sql = "INSERT INTO albums  VALUES (:id + null, :nr, :band, :song, :album, :duration)"
main_cursor = db_main.cursor()
main_cursor.executemany(sql, output)
主站蜘蛛池模板: 福利视频一区二区牛牛| 无码中文字幕乱码一区| 不卡无码人妻一区三区音频| 国产乱码精品一区二区三区香蕉| 香蕉久久ac一区二区三区| 日本一区二区三区在线看| 国产福利一区视频| 久久精品国产一区二区三区日韩| 久久久精品人妻一区二区三区四| 国模精品一区二区三区视频| 国产高清在线精品一区二区三区| 国产视频一区在线观看| 日本在线电影一区二区三区| 亚洲AV综合色区无码一区爱AV| 午夜视频在线观看一区| 无码国产精品一区二区免费模式| 在线观看视频一区二区| 无码精品黑人一区二区三区| 国产天堂在线一区二区三区| 日本一区二区在线播放| 中文字幕一区二区在线播放| 国产综合精品一区二区| 文中字幕一区二区三区视频播放| 一区二区三区在线| 美女视频黄a视频全免费网站一区| 亚洲丰满熟女一区二区v| 亚洲av不卡一区二区三区| 久久se精品一区二区影院| 国产精品一区二区久久沈樵| 无码中文字幕一区二区三区| 伊人色综合一区二区三区影院视频| 国产一区二区三区久久精品| 熟女性饥渴一区二区三区| 精品免费久久久久国产一区 | 一区二区三区在线播放视频| 国产一区二区三区无码免费| 风间由美在线亚洲一区| 国产一区二区三区在线电影| 国产成人精品一区二三区 | 国产日韩综合一区二区性色AV| 天天视频一区二区三区|