SQLALCHEMY设置默认值为False nullable为True

时间:2016-03-27 12:50:44

标签: python database python-3.x sqlalchemy flask-sqlalchemy

我在这里阅读了很少的sqlalchecmy答案,但我仍然不清楚两种情况。

这些是什么意思,它们之间有什么区别?

  • 为列设置默认值False和nullable为

    check = Column(Boolean, default=False, nullable=True)

  • 为列设置默认的True和Nullable False

    check = Column(Boolean, default=True, nullable=False)

我的想法很混乱。谢谢!

修改

这是我试图实现的逻辑。

class Checking(Base): __tablename __ = 'Test' check=Column(Boolean, nullable=True) def __init__(self, check): self.check = check def test(self): if self.check: print("Success") else: print("Failed")

check变为False时,它始终有效,即打印“失败”但在check变为True时无效。它失败了。
当列设置为default=False时,也会发生同样的情况。

如果我将列设置为default=True,则当列成为True时它会正常工作,但当列成为False时失败 - 表示上述情况反之亦然。

PS:这不是实际的代码,但它类似于我想要实现的实际代码。

1 个答案:

答案 0 :(得分:1)

default指定列保留为空时的默认值,因此default = True仅对布尔列有意义,如果列为空则将插入True。

nullable指定列中的值是否可以为NULL(或者在python中为无)(如果它为空,则不指定默认值)