【问题标题】:How can I delete data from logicblox without warning message如何在没有警告消息的情况下从 logicblox 中删除数据
【发布时间】:2015-07-20 19:30:26
【问题描述】:

在新版本的 logicblox(任何高于 4.2.1 的版本)中,如果存在谓词“Person(p), hasPNr(p:n) -> int(n)”。 然后我插入一个数据“+Person(p),+hasPNr[p]=1”。 然后如果我想通过“-Person(1)”删除数据。 将出现一条警告消息“警告:表达式‘1’的类型为‘int’,但需要‘Person’类型的值。编译器已插入谓词‘hasPNr’的使用以允许编译代码。” 如果没有此消息,如何删除数据?

【问题讨论】:

    标签: datalog logicblox


    【解决方案1】:

    您可以通过以下方式删除:

    -Person(n) <- Person:hasPNr@prev(n, 1).
    

    您也应该修改插入的方式。编译器中将“1”转换为“Person”的功能称为“refmode 转换”。该功能实际上已被删除,因为它经常引起混淆(就像您的情况一样:))所以要在没有 refmode 转换的情况下插入:

    +Person(n), +Person:hasPnr(n, 1).
    

    【讨论】:

    • 谢谢!有什么方法可以一次删除所有数据吗?喜欢删除 Person 中的所有人?
    • 当然。你可以这样做:-Person(n)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-25
    • 2017-04-29
    • 2021-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多