是否可以在单个sqlite语句中插入和更新?

是否可以在单个sqlite语句中插入和更新?

问题描述:

我想从表中插入一行到一个新表中,但我更改了一个值。是否可以在一个声明中做到这一点?是否可以在单个sqlite语句中插入和更新?

目前我有:

db = sqlite3.connect('C:/Desktop') 
db.execute("""insert into table2 select * from table1 where 
    ID = {0}""".format(5)) 
db.execute("""update table2 set column = {0} where ID = {1}""".format("new string",5) 
db.commit() 
db.close() 

与实际列的列表替换*,然后用新值替换列:

INSERT INTO Table2 
SELECT ThisColumn, ThatColumn, 'new string', OtherColumns 
FROM Table1 
WHERE ID = ?; 

是的,你可以使用

INSERT OR REPLACE INTO table(column_list) 
VALUES(value_list); 
+0

这不适用于问题中的问题。 –