2012-02-09 24 views
1

我正在使用sqlite3並想知道,如果有快速方法檢索主鍵表中的最後一個插入語句中創建A,所以我可以使用它作爲外鍵針對不同的插入語句表B。例如,首先在一個表格中添加一個新的汽車品牌,然後在不同的表格中添加一些品牌的型號。檢索表的最新主鍵用作不同表中的外鍵

TABLE car_brands (
brandID INTEGER PRIMARY KEY NOT NULL, 
name TEXT 
) 

TABLE car_models (
modelID INTEGER PRIMARY KEY NOT NULL, 
brandID INTEGER REFERENCES brandID, 
name TEXT 
) 

sqlite3_last_insert_rowid()沒有選擇,因爲我不知道,如果另一個線程在操作期間更新數據庫。

我需要使用單獨的語句檢索嗎?

問候, 好奇心

回答

0

根據網上的幫助,無論是sqlite3_last_insert_rowid()last_insert_rowid()(用於SQL中使用)是特定的連接。

只要您確保多個線程不共享相同的連接,您將不會收到與sqlite3_last_insert_rowid()併發問題。

而在您的SQL語句中,一個連接只能運行一個查詢。如果您在同一批次中同時擁有INSERT和last_insert_rowid()的調用,則不應該有併發問題。

相關問題