gpt4 book ai didi

mysql - 用可为空的 :true 更新域列

转载 作者:行者123 更新时间:2023-11-29 11:09:24 24 4
gpt4 key购买 nike

使用本SO question中提到的grails 2.2.5 & mySql & database-migration:1.3.2设置列deleted nullable:true不会将值更改为DB

首先,我添加了已删除的属性Boolean returned,但没有添加deleted nullable:true,因此当我将应用程序启动到数据库中时,我得到了 Null :Non(法语中是)

然后我添加了 deleted nullable:true 但当我重新运行应用程序时没有任何变化,我仍然有 Null : Non (图片上的最后一行)

我必须手动更改它吗?

enter image description here

域名

class Comment {

Date dateCreated
Boolean deleted
String comment;
Boolean rootComment;
int vote;

static belongsTo = [contributor: Contributor, discussion: Discussion]
static hasOne = [project: Project]
static mapping = {
autoTimestamp true
deleted defaultValue: "0"
deleted nullable:true
}
}

请注意,在 Datasource.groovy 中我有 dbCreate = "update"

    dataSource {
pooled = true
dbCreate = "update" // UPDATE
url = "jdbc:mysql://localhost:3306/soundsharedb"
driverClassName = "com.mysql.jdbc.Driver"
dialect = org.hibernate.dialect.MySQL5InnoDBDialect
username = "xxx"
password = "xxx"
logSql = false
properties {
stOnBorrow = true
testWhileIdle = true
testOnReturn = true
validationQuery = 'SELECT 1'
}

}

最佳答案

最好的办法是使用数据库迁移来更改该列的可为空标志。我们将迁移用于所有数据库操作——创建/修改/删除表、列、索引等等。

对于您想要实现的更改,离散步骤可能类似于:

databaseChangeLog = {
changeSet(author: "You", id: "some unique ID") {
dropNotNullConstraint(columnDataType: "bit", columnName: "deleted", tableName: "comment")
}
}

阅读数据库迁移插件,了解如何生成/编写迁移并将其用于编程数据库更改。

关于mysql - 用可为空的 :true 更新域列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40864506/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com