2014-09-10 201 views
0

我想一次插入到兩個表中。在sqlite中插入多行到多個表中的表

這需要這樣做。

將單行插入到一個表中,使用從第一個表中獲取的主鍵值作爲參考,獲取自動遞增的主鍵並將多行插入到其他表中。

這樣做的最好方法是什麼?

回答

0

SQLite內置last_insert_rowid()函數,但其​​返回值將在下一次插入後更改。

你必須閱讀你的程序的價值,並手動將其插入:

db.execute("INSERT INTO People(Name) VALUES (?)", ["Joe"]) 
id = db.last_insert_rowid 
db.execute("INSERT INTO Pets(Owner, Name) VALUES (?,?)", [id, "Fluffy"]) 
db.execute("INSERT INTO Pets(Owner, Name) VALUES (?,?)", [id, "Spot"]) 
+0

謝謝。與獲取getWritableDatabase()的返回值相同,插入並使用該鍵作爲參考? – Najiya 2014-09-10 13:19:51

+0

是的(如果你想知道如何在Android上做到這一點,你應該在問題中提到這一點)。 – 2014-09-10 13:32:16

0

這取決於你是如何遞增的關鍵。如果要將當前的「下一個鍵值」存儲在另一個表中,則首先提取下一個鍵,並將其用於所有插入語句。最後增加另一個表中的「下一個鍵值」。

+0

我使用的是自動增量密鑰 – Najiya 2014-09-10 13:20:36

+0

好的,我意識到在發佈之後,我的道歉。 – 2014-09-10 13:21:27