gpt4 book ai didi

python - SQLAlchemy 邻接列表 - 约束 parent_id 不等于 ID

转载 作者:行者123 更新时间:2023-12-04 08:25:57 26 4
gpt4 key购买 nike

我正在我正在工作的 SQL Alchemy 中实现一个邻接列表。这是基本示例 here的节点。我有它的工作。

class Node(Base):
__tablename__ = 'node'
id = Column(Integer, primary_key=True)
parent_id = Column(Integer, ForeignKey('node.id'))
data = Column(String(50))
children = relationship("Node")
但是,我想强制执行一个约束,其中 parent_id != id .也就是说,一行不能是它自己的父行。我不确定如何执行此操作。我是否需要使用 @validates或者是否有我可以在列上设置的数据库约束。

最佳答案

您可以使用 @validates或数据库约束。约束看起来像这样:

import sqlalchemy as sa

class Node(Base):
__tablename__ = 'node'
id = sa.Column(sa.Integer, primary_key=True)
parent_id = sa.Column(sa.Integer, sa.ForeignKey('node.id'))
data = sa.Column(sa.String(50))
children = orm.relationship("Node")

__table_args__ = (sa.CheckConstraint('parent_id != id'),)

关于python - SQLAlchemy 邻接列表 - 约束 parent_id 不等于 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65260435/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com