2011-05-22 56 views
4

如果鍵入:是否有可能將rowid中的某些行從一個表複製到另一個表中?

INSERT INTO table_b 
SELECT rowid, somecolumn 
    FROM table_a 

... ROWID列將複製到新表作爲普通列,這將最有可能產生一個錯誤,因爲列將不匹配。

但是,有沒有辦法從舊錶複製完全相同的rowid到新的時候,我填充新鮮?

我知道這是可以做到這樣的說法:

INSERT INTO table_b 
    (rowid, othercolumn) 
    VALUES (334, 'sometext') 

...但是,需要由一行行寫,而不是一個行SQL命令。

+0

? – 2011-05-22 18:28:50

+0

我正在使用,但在這裏我只想備份一些列,afaik sqlite def行爲是使rowids自動增量,但如果在源表中的行被刪除,它不會是理想的副本。 – rsk82 2011-05-22 18:37:11

回答

3

你寫的第一個SQL是正確的,並將複製匹配列的所有信息。 您也可以使用這樣的查詢:你爲什麼不使用[自動增量](http://www.sqlite.org/autoinc.html)使用定義主鍵

INSERT INTO table2(rowId, rowValue) 

SELECT rowId, rowValue FROM table1 
+0

它的工作原理,我忘了指定目標列的選項。謝謝。 – rsk82 2011-05-22 19:01:36

1

你有沒有嘗試過這樣的:

INSERT INTO table_b (target_name, target_name2) 
    SELECT rowid, somecolumn 
    FROM table_a 

應該正常工作。但我沒有在sqlite上完成它...

相關問題