当前位置: 首页 > 知识库问答 >
问题:

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

羊时铭
2023-03-14

我正在创建一个新表,如下所示:

    <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列标记,但它只含糊不清地说:

可为空-列是否可为空?

共有1个答案

阎啸
2023-03-14

它没有文档化,但是我查看了源代码,如果您不指定,则没有向列添加约束。您可以自己检查的一种方法是使用liquibaseupdateSql命令查看生成的SQL。

 类似资料:
  • 我创建了一个名为person的表,并使用liquibase变更集添加了一列“phone_number”。但现在我想为它添加一个默认值。但它不起作用,到目前为止,我已经尝试过: 和 和 有人能指出我哪里做错了,并且添加默认值会给以前添加的行增加值吗?

  • 当我为数据库生成DDL时,我不想有任何外键。 根据< code > javax . persistence . constraint mode ,有一个默认值: 那么如何在Hibernate中设置默认值呢? 我在JPA中使用Hibernate通过Spring Boot数据。

  • 问题内容: 我试图在我的中设置全局序列化器设置。 使用以下代码序列化对象时,是否不使用全局序列化程序设置? 是否可以像这样设置全局序列化程序设置,或者我遗漏了什么? 问题答案: 设置成功了。

  • 我对Liquibase有点陌生。我遇到了一个场景,在一个中,它试图首先添加默认值,而不是旁边的空约束。 但这里的问题是两者都

  • spring-boot-starter-parent 2.4.1 spring-boot-starter-data-jpa postgres 12.5 一个实体的简短摘录: 该实体生成一个表,如下所示: 就是这样: 我们可以看到: null 问题 > 我想防止任何人设置Null,就像在branch1中那样。 如果我这样组织它: @columnDefinition=“varchar(255)defa

  • 问题内容: 似乎至少有两种方法可以使用直接T-SQL添加默认约束。我是否正确,以下两者之间的唯一区别是第二种方法专门为约束创建了一个名称,而第一种方法有一个由SQL Server生成的名称? 问题答案: 几乎可以,对于ALTER TABLE 您也可以在一步中为CREATE或ALTER添加默认的columnn。 如您所述,如果未提供名称,则系统会生成一个名称。MSDN说是可选的。这同样适用于任何列或