2010-05-04 48 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