如何在SQLAlchemy的`__table_args__`中传递位置和关键字参数

发布于 2021-01-29 16:39:46

是否可以使用外键引用并在sqlalchemy的同一表上具有oracle分区?

这是将oracle分区定义__table_args__为dict的方式

class SQLAlchemyTable(mx.InsertedAtUpdatedAtMixin, Base):
    __tablename__ = 'SQLALCHEMY_TABLE'
    __table_args__ = {
        'info': {
            'oracle_partition': """
                PARTITION BY RANGE (PARTITION_DATE) INTERVAL (NUMTOYMINTERVAL(1,'MONTH'))
                ( PARTITION p_init VALUES LESS THAN (TO_DATE('07-12-2018','DD-MM-YYYY')))
            """
        },
    }

我在文档中发现,ForeignKeyConstraint定义在其中,__table_args__但定义为元组而不是字典

__table_args__ = (
    ForeignKeyConstraint(('LIST', 'STATE'), ['CODES.LIST_ID', 'CODES.ID']),
)

有什么帮助吗?

关注者
0
被浏览
376
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您可以在中传递位置参数和关键字参数__table_args__,如“表配置”中所示。使用保存位置参数的元组和关键字参数字典作为元组的最后一项:

    class SQLAlchemyTable(mx.InsertedAtUpdatedAtMixin, Base):
        ...
        __table_args__ = (
            ForeignKeyConstraint(('LIST', 'STATE'), ['CODES.LIST_ID', 'CODES.ID']),
            {
                'info': {
                    'oracle_partition': """
                        PARTITION BY RANGE (PARTITION_DATE) INTERVAL (NUMTOYMINTERVAL(1,'MONTH'))
                        ( PARTITION p_init VALUES LESS THAN (TO_DATE('07-12-2018','DD-MM-YYYY')))
                    """
                }
            }
        )
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看