如何使用Sqlite获取iPhone上父对象的密钥

时间:2009-06-16 22:01:50

标签: iphone sqlite uitableview

我正在尝试创建一个非常简单的示例,因为我掌握了iPhone App编程。

第一个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);

1 个答案:

答案 0 :(得分:0)

通过SQL,您可以在每次插入后查询SQLITE_SEQUENCE表:

  

SELECT seq FROM SQLITE_SEQUENCE WHERE name = 'make'

只有在执行插入操作并且在同一事务中进行选择时才能可靠地工作,锁定表,这样在从序列表中获取值之前,没有其他人可以执行插入。


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

  

sqlite3_int64 sqlite3_last_insert_rowid(sqlite3*);

(来自http://www.sqlite.org/c3ref/last_insert_rowid.html