2017-09-01 122 views
1

我想從表中插入一行到一個新表中,但我更改了一個值。是否可以在一個聲明中做到這一點?是否可以在單個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() 

回答

3

與實際列的列表替換*,然後用新值替換列:

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

是的,你可以使用

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

這不適用於問題中的問題。 –

相關問題