2015-10-01 157 views
5

我創建一個新表,如下所示:liquibase列的默認可空約束設置是什麼?

<createTable tableName="myTable"> 
     <column name="key" type="int" autoIncrement="true"> 
      <constraints primaryKey="true" primaryKeyName="PK_myTable" nullable="false"/> 
     </column> 
     <column name="name" type="nvarchar(40)"> 
      <constraints nullable="false"/> 
     </column> 
     <column name="description" type="nvarchar(100)"> 
      <constraints nullable="true"/> 
     </column> 
    </createTable> 

至於nullable約束,如果我省略屬性什麼是默認設置?

例如, 如果我只有這樣做:

<column name="description" type="nvarchar(100)"/> 

...將列可爲空?

更重要的是,哪裏是指定此(因爲我有這樣的其他問題)的文檔?

我看這裏:Liquibase Column Tag,但它只是含糊地說:

爲空的 - 是列可空?

回答

4

它沒有記錄,但我看了看源代碼,看來如果你沒有指定,沒有約束添加到列中。您可以自己檢查的一種方法是使用liquibase updateSql命令查看生成的SQL。

+0

你能告訴我你在看什麼代碼嗎? (Package,class) – LimaNightHawk

+1

ColumnConfig:https://github.com/liquibase/liquibase/blob/master/liquibase-core/src/main/java/liquibase/change/ColumnConfig.java – SteveDonie

+0

特別是AddColumnChange:https:// github.com/liquibase/liquibase/blob/master/liquibase-core/src/main/java/liquibase/change/core/AddColumnChange.java#L100-L102 – SteveDonie