如何根据另一个表之间匹配更新sqlite python表

njthzxwz  于 2023-01-21  发布在  SQLite
关注(0)|答案(1)|浏览(120)

我尝试使用下面的代码,但它给出错误:

import sqlite3    
conn = sqlite3.connect('stock.db')  
cursor = conn.cursor()
   

    conn.execute("UPDATE COMSEC_STOCK SET COMSEC_STOCK.quantity = COMSEC_STOCK.quantity -1 FROM COMSEC_STOCK, Comsec_Out_Temp WHERE COMSEC_STOCK.product_id = Comsec_Out_Temp.product_id")
        
    cursor.close()    
    conn.commit()
o4hqfura

o4hqfura1#

在SQLite中,SET语句左侧的更新列不应使用表的名称/别名进行限定。
此外,不应在FROM子句中使用更新的表。
像这样编写代码:

UPDATE COMSEC_STOCK 
SET quantity = COMSEC_STOCK.quantity -1 
FROM Comsec_Out_Temp 
WHERE Comsec_Out_Temp.product_id = COMSEC_STOCK.product_id;

或者,最好使用表的别名:

UPDATE COMSEC_STOCK AS s
SET quantity = s.quantity -1 
FROM Comsec_Out_Temp AS t 
WHERE t.product_id = s.product_id;

相关问题