このディレクトリの索引

# 出典 :: SQL質疑応答スレ 12問目 #196 # PHPでMySQLかsqlite3を使おうと思っています。 # 表の先頭に新しい行を追加して、行の総数が指定した数(たとえば10)よりも多くなった場合は # 多くなった分を表の末尾から削除して行数を一定以上に増やさないようにしたいのですがどうすればいいですか? # ロケット鉛筆みたいに最大数が決まっていてはみ出たら押し出すみたいなことをしたいです。 # 表の先頭に追加して上限を超えたら最後尾から削除するんじゃなくて # 表の最後尾に追加して上限を超えたら先頭から削除するのでもいいです。 # どちらのほうが簡単かどうかもわかっていませんがよろしくお願いします。 # # 行の限界数(_/_,10). '表の先頭に新しい行を追加して、行の総数が指定した数(たとえば10)よりも多くなった場合は 多くなった分を表の末尾から削除して行数を一定以上に増やさないようにしたい'(_テーブル名,_行) :- length(_行,_列数), '表の先頭に新しい行を追加して'(_テーブル名,_行), '行の総数が指定した数(たとえば10)よりも多くなった場合は多くなった分を表の末尾から削除して'(_テーブル名,_列数). '表の先頭に新しい行を追加して'(_テーブル名,_行) :- P =.. [_テーブル|_組み], asserta(P). '行の総数が指定した数(たとえば10)よりも多くなった場合は多くなった分を表の末尾から削除して'(_テーブル名,_列数) :- 行の限界数(_テーブル名/列数,_限界数), n番目より後の定義節を全て削除する(_テーブル名/_列数,_限界数). n番目より後の定義節を全て削除する(_述語名/_アリティ,_n) :- 述語の頭部の形式(_述語名,_アリティ,_頭部の形式), forall(n番目より後の定義節を(_頭部の形式,_n,Ref),削除する(Ref)). 述語の頭部の形式(_述語名,_アリティ,_頭部の形式) :- length(L,_アリティ), _頭部の形式 =.. [_述語名|L]. n番目より後の定義節を(_頭部の形式,_n,Ref) :- nth_clause(_頭部の形式,_何節目,Ref), _何節目>_n. 削除する(Ref) :- erase(Ref).