我創建了三個表格,並且我想創建一個函數,該函數根據其中一個變量值使用變量值填充表格,因爲它們由另一個函數更新。如何將表名設置爲變量並將變量插入到python中的sqlite表中?
c.execute('CREATE TABLE IF NOT EXISTS unu (id INTEGER PRIMARY KEY, item1 TEXT, item2 INT)')
c.execute('CREATE TABLE IF NOT EXISTS doi (id INTEGER PRIMARY KEY, item1 TEXT, item2 INT)')
c.execute('CREATE TABLE IF NOT EXISTS trei (id INTEGER PRIMARY KEY, item1 TEXT, item2 INT)')
update_tables()
def tablepopulate(table):
query = 'SELECT item2 FROM {} ORDER BY id DESC LIMIT 1'.format(table)
insert ='INSERT INTO {} (item1,item2) VALUES (?,?)'.format(table)
c.execute(query)
xy=c.fetchone()
if xy == None :
c.execute(insert,(item1, item2))
elif xy[1] == 0
c.execute(insert,(item1, item2))
try:
tablepopulate("unu")
except:
try:
tablepopulate("doi")
except:
try:
tablepopulate("trei")
except:
print("all tables are populated")
此代碼不會給我任何錯誤,但它不會填充表
它不會顯示任何錯誤,因爲您明確隱藏它們。刪除所有這些嘗試/除外,並顯示實際的錯誤是什麼。 –
這裏有很多東西。在創建表之後,你可能需要'conn.commit()'更改。但是''SELECT item2 FROM {} ORDER BY id DESC LIMIT 1'.format(table)'在'{}'後面需要一個空格,然後是'INSERT INTO {}(?,?)VALUES(item1,item2 )'.format(table)'是回到前面,可能應該是''INSERT INTO {}(item1,item2)VALUES(?,?)'.format(table)'。然後,'item1'和'item2'沒有在'tablepopulate()'中定義。 – roganjosh
小心輸入錯誤:'CREATE TABLE IF NOT EXIST(S)','if xy =(=)None:' – PRMoureu