2011-02-17 88 views
-1

我有一個表,我需要有一個遞增的_id列。但是,由於表有3個主鍵,我不能使用自動增量。這是在SQLite,順便說一句。該表已經填充了數據,因此我不能重新創建表。在SQLite中將列數據從一個表複製到另一個

有沒有辦法在_id列中插入1到148的值?

我們已經嘗試過這樣的事情:

UPDATE table1 
SET _id = (SELECT _id FROM table2) 

表2是包含1的值148但是,這只是更新所有_id值「1」臨時表..

關於如何解決這個問題的任何建議?

回答

3

不確定我明白。但讓我試試。

  • table1有一個由三列構成的主鍵 。
  • 其中一列被命名爲「_id」。
  • 列「_id」是一個整數,但 不是自動遞增的 整數。
  • 您想要將值1至148 插入到table1._id中。

在SQLite中,如果主鍵中的其他兩列之一被定義爲「NOT NULL」,那麼你不能這樣做。您必須同時爲主鍵的所有「NOT NULL」組件插入值。但是,如果它們可以爲空,則可以將值插入到table1._id中。只需要

insert into table1 (_id) 
select _id from table2; 

這會將新行插入table1,除了_id之外的所有列都爲空值。

相關問題