当主键为真时,SQLAlchemy 未能捕获非空约束
SQLAlchemy failing to catch not null constraint when primary key true
以前的测试会在传入 None for
时引发异常
Column(Integer, nullable=False)
现在,当我将其更改为主键 true 时,它不再引发异常
Column(Integer, nullable=False, primary_key=True)
我已经为 NOT NULL 尝试了一个单独的 CheckConstraint(),但它仍然没有抱怨。
当我尝试为此提交 None/Null 值时,如何让它再次抱怨?
SQLAlchemy defaults to autoincrement=True
for primary key Integer
columns - 因此在你的第二种情况下,NULL
从未真正插入,这就是约束仍然满足的原因。
设置 autoincrement=False
应该能让您获得想要的行为:
Column(Integer, nullable=False, primary_key=True, autoincrement=False)
以前的测试会在传入 None for
时引发异常Column(Integer, nullable=False)
现在,当我将其更改为主键 true 时,它不再引发异常
Column(Integer, nullable=False, primary_key=True)
我已经为 NOT NULL 尝试了一个单独的 CheckConstraint(),但它仍然没有抱怨。
当我尝试为此提交 None/Null 值时,如何让它再次抱怨?
SQLAlchemy defaults to autoincrement=True
for primary key Integer
columns - 因此在你的第二种情况下,NULL
从未真正插入,这就是约束仍然满足的原因。
设置 autoincrement=False
应该能让您获得想要的行为:
Column(Integer, nullable=False, primary_key=True, autoincrement=False)