9502


たとえば、SQL Serverの場合だと次のような方法があります。

[code]

    CREATE TABLE TABLENAME(ID INTEGER PRIMARY KEY,colmn1 nvarchar(10),colmn2 nvarchar(10));
    BEGIN TRANSACTION
    INSERT INTO TABLENAME(colmn1,colmn2) VALUES(DATA1,DATA2);
    SELECT @@IDENTITY AS 'ident' // ここでIDを取得可能
    COMMIT TRANSACTION
    
[/code]

現在、SQLite3では、よくないなと感じながらも、方法の一つとして、次のように取得しています。

[code]

    create table test(id integer primary key,test text);
    BEGIN;
    insert into test(test) values("Fooooooooooooooo");
    select max(id) from test;
    1
    COMMIT;
    
[/code]

本来、SQLite3では新規レコードのIDを取得するには、どのように取得することが正しいのでしょうか？


CC BY-SA 3.0
2015-04-23T04:52:47.307
9501
2015-04-23T05:05:46.907
8667
question
sql sqlite
SQLite3で、insertしたカラム（のIDまたはROWID）を取得するには？


恐らくですが、

[code]

    select last_insert_rowid();
    
[/code]

でよいことがわかりました。  
お騒がせいたしました。

これ以外に良い回答がございましたらお教えいただければ幸いです。


CC BY-SA 3.0
2015-04-23T05:05:46.907
9502
2015-04-23T05:05:46.907
8667
9501
answer