このディレクトリの索引
http://pc11.2ch.net/test/read.cgi/db/1274791771/48
# 
#  ・テーブルの構造 
#  CREATE TABLE IF NOT EXISTS table ( 
#    id integer NOT NULL auto_increment, 
#    value integer NOT NULL, 
#    PRIMARY KEY (id), 
#  ); 
#   
#  ・テーブルデータ 
#  ID  VALUE 
#  --+-------- 
#  1  相沢 
#  2  飯田 
#  3  上井 
#   
#  ・操作 
#  INSERT INTO table(id, value) values 
#  (NULL, '遠藤'), (NULL, '岡田'); 
#   
#  ・欲しい結果 
#  4 
#  5 
#   
#  ・説明 
#  ID列をauto_incrementにしているのですが、要素を追加したときに 
#  そのIDを取得したいと考えています。どのようにしたらいいでしょうか? 
# 
# 

'ID列をauto_incrementにしているのですが、要素を追加したときにそのIDを取得するには'(table,ID) :-
        auto_increment(TABLE,VALUEs,ID).

auto_increment(_表,_値ならび,_付加されるID) :-
    length(_値ならび,Len),
    length(L,Len),    
    P =.. [_表,ID0|L],
    findmax(ID0,P,Max),
    _付加されるID is Max + 1,
    Q =.. [_表,_付加されるID|_値ならび],
    assertz(Q),!.
auto_increment(_表,_値ならび,1) :-
    Q =.. [_表,1|_値ならび],
    assertz(Q),!.