2016-03-27 14 views
0

ここではsqlalchecmyの回答はほとんど読んでいませんが、まだ2つのシナリオについてはっきりしていません。SQLALCHEMY既定のFalseをnullに設定するTrue

これらは正確に何が意味していますか、これらの違いは何ですか?

  • 設定のデフォルトはFalseと列のための真のNULL可能

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

  • 設定のデフォルトはTrueと私が午前コラム

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

のための偽のNULL可能混乱するthそうだ。ありがとう!

EDIT:

ここでは、私が実装しようとしているロジックです。 checkFalseすなわち、印刷「失敗」になってきたがcheckTrueになったときに動作していないとき、それは常に働いている

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")

。それはそこに失敗している。
列がdefault=Falseに設定されている場合も同じことが起こります。

default=Trueに列を設定すると、列がTrueになったときに機能していますが、列がFalseになると失敗します。これは上記の逆の意味です。

PS:これは実際のコードではありませんが、実際に達成しようとしているコードと似ています。

+1

ヌル(それはデフォルトを指定せずに、空の場合、それはなります)NULL(やPythonなしで)ことができる

NULL可能で指定されている場合、それはに等しい場合= trueは、NULL値を許容します値が渡されない場合、デフォルト値はカラムのデフォルト値を返す –

答えて

1

デフォルトでは、カラムが空のままのときのデフォルト値を指定します。したがって、デフォルト= Trueはブールカラムに対してのみ意味を持ち、カラムが空の場合にTrueを挿入します。カラムの値が

+0

check = Column(Boolean、default = False、nullable = True)の場合、デフォルトは値が指定されていない場合はFalseに設定されます。つまり、nullable = Trueです。 nullable = Trueの場合、列はNULLになります。 – trishnag

+1

はい、しかしnullable = Falseで、それも起こります –

+0

しかし、私のコードは、列がTrueになっているときに失敗しています。つまり、ある値またはTrueを割り当てるときです。 FalseまたはNULLの場合のみ動作します。私はそれを理解することができません: – trishnag

関連する問題