Sqlalchemy 如何在sql alchemy中定义排除约束?

Sqlalchemy 如何在sql alchemy中定义排除约束?,sqlalchemy,Sqlalchemy,我的表格如下: table_1 = Table( 'table_1', meta, Column('columnA', VARCHAR(128), ForeignKey("table1.id"), nullable=False), Column('ColumnB', BIGINT(), ForeignKey("table2.id"), nullable=False), Column

我的表格如下:

table_1 = Table(
    'table_1', meta,
    Column('columnA', VARCHAR(128), ForeignKey("table1.id"),
           nullable=False),
    Column('ColumnB', BIGINT(), ForeignKey("table2.id"),
           nullable=False),
    Column('ColumnC', SmallInteger(),
           CheckConstraint('ColumnC > 0'),
           default=1, nullable=False),
    Column('ColumnD', DATERANGE(),
           ExcludeConstraint(
               ("ColumnA", "="),
               ("ColumnB", "="),
               ("ColumnC", "="),
               ("ColumnD", '&&'),
               name="unique_date_range_constraint",
               using="gist"

           ), nullable=False
           ),
)

我想要实现的是,在表1中,对于相同的ColumnA ColumnB和ColumnC,ColumnD日期范围不能重叠。我可以在纯sql中实现这一点,但我正在试图找出如何在sql炼金术中实现这一点。

尝试将约束作为参数传递给
表,而不是
列。