2009-06-16 57 views
0

一個非常簡單的示例,我正在嘗試創建,因爲我掌握了iPhone應用程序編程。如何使用Sqlite獲取iPhone上的父對象的密鑰

第一個TableView顯示了製作,選擇一個將用戶帶到不同的視圖(我可以使用相同的視圖來顯示模型)以顯示模型。 如果顯示汽車模型的模型TableView允許用戶添加新記錄,我如何以及在何處捕獲父鍵(make)的主鍵(pk)?

哪種方法可以捕獲主鍵以及如何?

SQLite數據庫:

CREATE TABLE make(pk INTEGER PRIMARY KEY, parentkey INTEGER DEFAULT 0, title TEXT); 

INSERT INTO make(title) VALUES('Honda'); 
INSERT INTO make(title) VALUES('Toyota'); 
INSERT INTO make(title) VALUES('Mazda'); 
INSERT INTO make(title) VALUES('Nissan'); 

INSERT INTO make(title, parentkey) VALUES('Civic', 1); 
INSERT INTO make(title, parentkey) VALUES('Accord', 1); 
INSERT INTO make(title, parentkey) VALUES('Corolla', 2); 
INSERT INTO make(title, parentkey) VALUES('Corona', 2); 

回答

0

通過SQL,您可以在每次插入後查詢SQLITE_SEQUENCE表:

SELECT seq FROM SQLITE_SEQUENCE WHERE name = 'make'

如果你做你插入這隻會可靠工作並且這在同一事務中選擇,鎖定表,以便在從seq獲取值之前,沒有其他人可以執行插入操作uence表。


使用API​​(而不是SQL):

sqlite3_int64 sqlite3_last_insert_rowid(sqlite3*);

(從http://www.sqlite.org/c3ref/last_insert_rowid.html