現在的問題是我只能輸入一條記錄。沒有錯誤記錄。它只是從一個資料庫中獲取第一條記錄并放入另一個資料庫中。我正在嘗試從用戶界面資料庫創建一個機器可用的資料庫。一旦它作業,我將嘗試傳輸大約 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 年代。
uj5u.com熱心網友回復:
游標 ( crs)在此處更改
crs.execute(sql, (scene, cascade, enclosure,sensor,streamer,dither))
在第一次插入之后。因此,原始檔案中“沒有更多行可獲取” crs。
一種解決方案是為插入實體化另一個游標。另一種解決方案是將fetchall()行放入變數中并迭代該變數,如下所示:
rows = crs.execute("SELECT * FROM animalStream").fetchall()
for row in rows:
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/422600.html
標籤:
