SQLALCHEMY set default False可空Tru

2024-10-01 11:19:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我在这里读了一些sqlalchecky的答案,但是我仍然不清楚有两种情况。在

这些到底是什么意思?它们之间有什么区别?在

  • 为列设置默认的False和可为null的True

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

  • 为列设置默认True和可为null的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变成{}时,它始终工作。它在那里失败了。
当列设置为default=False时,也会发生同样的情况。在

如果我将列设置为default=True,那么当列变成True时,它就工作了;但是当列变成{}时,它就失败了——这意味着上述情况相反。在

PS:这不是实际的代码,但它与我试图实现的实际代码类似。在


Tags: 答案代码selffalsetruedefaultdefcheck
1条回答
网友
1楼 · 发布于 2024-10-01 11:19:46

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

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

相关问题 更多 >