【问题标题】:how do I create unique constraints on two properties in neo4j?如何在 neo4j 中的两个属性上创建唯一约束?
【发布时间】:2021-07-06 07:46:33
【问题描述】:

我使用节点作为中间路径元素,但我想确保开始/结束是唯一的。如何创建需要检查两个值的约束?

我可以设置单独的,但看不到两部分约束的语法。

        neolib.run_query(
            """CREATE CONSTRAINT
                uSource
                if not exists
                ON (m:route) ASSERT m.source IS UNIQUE""")
        neolib.run_query(
            """CREATE CONSTRAINT
            uTarget
            if not exists
            ON (m:route) ASSERT m.target IS UNIQUE""")

【问题讨论】:

    标签: neo4j py2neo


    【解决方案1】:

    它有这个文档:

    https://neo4j.com/docs/cypher-manual/current/administration/constraints/#query-constraint-node-key

    CREATE CONSTRAINT [constraint_name] [IF NOT EXISTS]
    ON (n:LabelName)
    ASSERT (n.propertyName_1,
    n.propertyName_2,
    …
    n.propertyName_n)
    IS NODE KEY
    [OPTIONS "{" option: value[, ...] "}"]
    
    FOR EXAMPLE:
        CREATE CONSTRAINT uSourceTarget IF NOT EXISTS ON (m:route) ASSERT (m.source, m. target) IS NODE KEY
    

    注意:仅适用于企业版(不适用于社区版)

    【讨论】:

    • 知道了,所以node KEY约束而不是普通节点约束。
    • 是的。如果可行,请接受我的回答(检查按钮)。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2017-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多