尝试使用 python 将 sqlite table 保存在另一个 table 中

Trying to save a sqlite table inside another table using python

现在的问题是我只能输入一条记录。没有错误被记录。它只是从一个数据库中获取第一条记录并放入另一个数据库中。我正在尝试从用户界面数据库创建一个机器可用的数据库。一旦它开始工作,我将尝试传输大约 100 条记录。我将不胜感激评论或建议。谢谢!

import sqlite3

sql = 'INSERT INTO heavenStream (scene, cascade, enclosure, sensor, streamer, dither) VALUES (?, ?, ?, ?, ?, ?)'

def dropTable(crs,conn):
    crs.execute("DROP TABLE IF EXISTS heavenStream")

def createTable(crs,conn):
    sql ='''CREATE TABLE heavenStream(
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    scene TEXT,
    cascade TEXT,
    enclosure TEXT,
    sensor TEXT,
    streamer TEXT,
    dither TEXT,
    timeStream TEXT,
    streamTime TEXT
    )'''
    crs.execute(sql)
    print("Table created successfully........")

def insert_one(conn, crs):
    crs.execute("SELECT * FROM animalStream")

 for row in crs:
        scene = row[1] 
        cascade = row[2] 
        enclosure = row[3]
        sensor = row[4]
        streamer = row[5]
        dither = row[6]
        print(f"{row[1]} {row[2]} {row[3]} {row[4]} {row[5]} {row[6]}")
        try:
           crs.execute(sql, (scene, cascade, enclosure, 
           sensor,streamer,dither))
        except sqlite3.IntegrityError as err:
           print('sqlite error: ', err.args[0]) # column name is 
           not unique
        conn.commit()       

def main():
    conn = sqlite3.connect("/home/harry/interface/wildlife.db")
    crs = conn.cursor()
    dropTable(crs,conn)
    createTable(crs,conn)
    insert_one(conn, crs)
#   conn.commit()
    conn.close()
    print('done')

main()

用户界面数据库已删除记录。 id为64的记录只有一条,其余都是90年代的。

光标(crs)改变这里

crs.execute(sql, (scene, cascade, enclosure,sensor,streamer,dither))

第一次插入后。因此,原始 crs.

中“没有更多的行可以获取”

一个解决方案是为插入实例化另一个游标。另一种解决方案是将 fetchall() 行放入一个变量并迭代该变量:

    rows = crs.execute("SELECT * FROM animalStream").fetchall()

    for row in rows: