当前位置:  开发笔记 > 数据库 > 正文

abolish/1和retractall/1有什么区别?

如何解决《abolish/1和retractall/1有什么区别?》经验,为你挑选了2个好方法。

从阅读手册,我似乎无法找到两者之间的差异.

手册说:

建议使用retractall/1来擦除动态谓词的所有子句.

所以我选择retractall/1在我的程序中使用; 但是,我想知道区别是什么.



1> Paulo Moura..:

retractall/1标准内置谓词可以用来删除所有条款的动态谓词,但断言仍然由运行时是已知的.该abolish/1标准内置谓词,在另一方面,不仅能消除所有的谓语从句也使得谓词未知的运行时间.如果在使用后删除所有子句后尝试调用动态谓词retractall/1,则调用将失败.但是如果你取消动态谓词,那么在之后调用它会导致谓词存在错误.



2> CapelliC..:

类似于SQL:

retractall(table_name(_,_,_))可能是delete from table_name,而 abolish(table_name/3)将播放为drop table_name

推荐阅读
LEEstarmmmmm
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有