liquibase 列的默认可为空约束设置是什么?

What is the default nullable constraint setting for a liquibase column?

我正在创建一个新的 table,像这样:

    <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,但它只是模棱两可地说:

nullable - Is column nullable?

它没有记录在案,但我查看了源代码,似乎如果您不指定,则不会向该列添加任何约束。您可以自己检查的一种方法是使用 liquibase updateSql 命令查看生成的 SQL。

实际上它被记录在案 here

Defines whether the column is nullable. Default: database-dependent

所以默认的空约束是database-dependent。 例如,如果您使用 Postgres,默认情况下它将不可为空。

https://www.postgresqltutorial.com/postgresql-tutorial/postgresql-not-null-constraint/

Use the NOT NULL constraint for a column to enforce a column not accept NULL. By default, a column can hold NULL.