代码之家  ›  专栏  ›  技术社区  ›  Hatshepsut

sqlalchemy核心中的自参考列

  •  0
  • Hatshepsut  · 技术社区  · 7 年前

    https://docs.sqlalchemy.org/en/latest/orm/self_referential.html

    person 在需要引用时尚未定义。

    import sqlalchemy as sa
    
    
    metadata = sa.MetaData()
    
    person = sa.Table(
        "person",
        metadata,
        sa.Column("person_id", sa.BigInteger, primary_key=True, autoincrement=True),
        sa.Column("mother", None, sa.ForeignKey(person.c.person_id)),
    )                                         # ^ This is an errror
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Ilja Everilä    7 年前

    使用的字符串参数形式 ForeignKey ,即。 'tablename.columnkey' :

    person = sa.Table(
        "person",
        metadata,
        sa.Column("person_id", sa.BigInteger, primary_key=True, autoincrement=True),
        sa.Column("mother", sa.ForeignKey("person.person_id")),  # Note: no `.c.`
    )