2017-09-01 13 views
1

テーブルから新しいテーブルに行を挿入したいが、そのように1つの値を変更したい。これを1つの声明で行うことは可能ですか?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

これは問題の問題では機能しません。 –

関連する問題