2010-05-04 51 views
3

我有一個SQL表設置看起來像這樣獲取主鍵從SQL插入背面使用SQLite

create table foo ( 
    id int primary key asc, 
    data datatype); 

create table bar ( 
    id int primary key asc, 
    fk_foo int, 
    foreign key(foo_int) references foo(id)); 

現在,我要插入一個記錄集。

insert into table foo (data) values (stuff); 

但等等 - 讓酒吧所有補丁hunkydory我需要從富的PK。我知道這是一個解決的問題。

解決方案是什麼?

回答

9

試試這個

SELECT last_insert_rowid() 
+4

我知道這是一個老問題/答案,但請注意,這不符合建立上述聲明定義正常工作。 last_insert_rowid返回指定表的最後一個rowid。但是在上面創建table語句時,id列被定義爲'int primary key'。在這種情況下,id不是rowid的別名。只有當id被聲明爲'整數主鍵'時纔是這種情況。這是一個(唯一的?)情況,其中sqlite需要一個非常具體的列聲明。 'int'不夠好,它必須是'整數'。否則,id和rowid不是同一個colulmn。 – 2011-09-16 16:36:33