如何在SQLAlchemy中为Varchar数据类型列指定检查约束?
我正在尝试通过SQLAlchemy在某一列上设置这个检查约束。
delete_flag char(1) not null CHECK(delete_flag in('Y','N')),
但是我搞不清楚该用什么语法来实现这个。任何链接、教程或者建议都会对我很有帮助。
谢谢,
Tara Singh
1 个回答
2
在这种情况下,你应该使用SQLAlchemy的枚举类型。
import enum
from sqlalchemy import Enum
class YesNo(enum.Enum):
yes = 'Y'
no = 'N'
t = Table(
'data', MetaData(),
Column('value', Enum(YesNo, create_constraint=True))
)
connection.execute(t.insert(), {"value": YesNo.no})
assert connection.scalar(t.select()) is YesNo.no