user(admin).
user(guest).
如何检查管理员是否存在?否则:
assert(user(admin)).
答案 0 :(得分:4)
通常,可以动态添加到数据库的谓词如user/1
声明为:
:- dynamic(user/1).
您可以查询用户管理员是否存在:
?- user(admin).
false.
现在,如果添加用户admin,则相同的查询成功:
?- assert(user(admin)).
true.
?- user(admin).
true.
有可能提出一个自动执行此操作的谓词,而不需要动态声明:
add_to_db(Fact):-
current_predicate(_, Fact),
Fact, !.
add_to_db(Fact):-
assertz(Fact).