このディレクトリの索引
http://toro.2ch.net/test/read.cgi/db/1316769778/945
#  ・DBMS名とバージョン MySQL 5.1 
#  ・テーブルデータ  
#  CSVファイル 
#  "犬","シベリアンハスキー" 
#  "猫","マンチカン" 
#  "熊猫","レッサーパンダ" 
#  ・欲しい結果 
#  インポートして、次のようにしたい、要するに連番をつけたい 
#  ID 動物 種類 
#  1 犬 シベリアンハスキー 
#  2 猫 マンチカン 
#  3 熊猫 レッサーパンダ 
#  ・説明  
#  インポートするときにdefaultをつければいいのですが、SQL文で書けないでしょうか。 
# 

'CSVファイルを連番をつけてインポートする'(_CSVファイル) :-
        'CSVファイルを'(_CSVファイル,LL),
        連番をつけてインポートする(LL).

'CSVファイルを'(_CSVファイル,LL) :-
        get_split_lines(_csvファイル,[','],LL).

連番をつけてインポートする(LL) :-
        append(L0,[L|R],LL),
        連番をつけて(L0,L,P),
        assertz(P),
        R = [].

連番をつけて(L0,L,P) :-
        length([_|L0],N),
        P =.. [テーブル,N|L].


%  課題の文("インポートして、次のようにしたい、要するに連番をつけたい")を
%  若干組み替えて、"CSVファイルを連番をつけてインポートする"とした。
%  一般論としては好ましいことではないが、述語定義をしていくうちに、これは
%  課題の文に問題があるということになって遡って定義を書き換えることはある。
%  Prologは国語だの所以か。