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

Liquibase将列默认值设置为null

曹伟泽
2023-03-14

我尝试使用liquibase使用liquibase“addDefaultValue”语法将我的列的默认值设置为null:

<changeSet id="20181213171501-2">
    <!-- Add default value -->
    <addDefaultValue tableName="myTable"
        columnDataType="boolean"
        columnName="myColumn"
        defaultValueBoolean="null" />
</changeSet>

但是向myTable插入新行显示默认值仍然设置为“false”,就像以前一样。所以liquibase更改集不起作用。

如何设置列默认值为null与liquibase?

共有2个答案

夏侯俊美
2023-03-14

这正是dropDefaultValue重构所做的:它将可为null的列的默认值重置为null。

<changeSet id="20181213171501-2">
    <!-- Reset default value to NULL -->
    <dropDefaultValue tableName="myTable" columnName="mColumn" />
</changeSet>
白念
2023-03-14

我找到的解决方案是使用原始SQL查询,而不是使用liquibase“addDefaultValue”语法:

<changeSet id="20181213171501-2">
    <!-- Add default value -->
    <sql dbms="mysql">
        ALTER TABLE myTable MODIFY myColumn BOOLEAN NULL DEFAULT NULL
    </sql>
</changeSet>
 类似资料:
  • 问题内容: 可以为JPA中的列设置默认值吗?如果使用注释,如何做到这一点? 问题答案: 实际上,在JPA中是可能的,尽管使用批注的属性有些小小的改动,例如:

  • 问题内容: 如何为MySQL Datetime列设置默认值? 在SQL Server中为。MySQL的等效功能是什么?如果这是一个因素,我正在使用MySQL5.x。 问题答案: 重要编辑: 自 MySQL 5.6.5起 ,现在可以使用DATETIME字段实现此目的,请看下面的另一篇文章 … 以前的版本无法在DATETIME做到这一点… 但是您可以使用TIMESTAMP来做到这一点: 注意:如果您定

  • 问题内容: 例如,如果component是一个复选框,则必须将其设置为false,或者是textfield,则必须清除文本。我正在尝试编写一种方法来重置中的所有组件。它必须像HTML表单中的reset函数一样工作。 如何将a重设为默认值? 问题答案: 一种可能的解决方法是创建自定义重置功能。重新初始化面板(您的表单)。 例如 创建一个自定义类来存储表单字段及其侦听器。 重新初始化面板组件将导致按@

  • 我在spring-boot项目中有一个properties类。 现在,我想将的application.properties文件中的其他属性设置默认值。与下面的示例使用@value所做的类似

  • 我试图设置可变投掷SpEL在Spring启动应用程序: 应该来自应用程序-{profile}。财产。但是字段始终为空,即使已存在。 带有的代码可以正常工作,但包含空字符串。 我的问题是,如果使用SpEL的属性不存在,如何将null设置为variable。 upd:值来自特定于配置文件的属性文件

  • 在安装了以管理中的冲突后,仍然会为我打开默认设置: 以下是本回答中提到的配置: 注意:我可以用简单的文件单独运行,但是我不能在我的git项目中运行它。任何想法? 编辑:这里是我的. gitconfig: