液态基列的默认可空约束设置是什么?



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

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

…列可以为空吗?

更重要的是,指定这个的文档在哪里(因为我有其他类似的问题)?

我看这里:liququibase Column标签,但它只含糊地说:

nullable -列是否为空?

没有文档记录,但我查看了源代码,似乎如果不指定,就不会向列添加约束。您可以自己检查这一点的一种方法是使用liquidbase updateSql命令查看生成的SQL。

实际上这里有文档。

定义列是否可为空。默认值:database-dependent

所以默认的null约束是依赖于数据库的。例如,如果您使用Postgres,默认情况下它将是可空的。

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

对列使用NOT NULL约束来强制列不接受NULL。默认为NULL

最新更新