【问题标题】:Grails Database migration - How to remove a specific row?Grails 数据库迁移 - 如何删除特定行?
【发布时间】:2015-11-11 10:48:57
【问题描述】:

我必须手动迁移才能删除表中名为“类型”的特定行。

该行在值列中具有值“Super”。我应该如何为此写changeSet

我试过了:

databaseChangeLog = {

changeSet(author: "sara (generated)", id: "1432343423-8") {
   delete(tableName: "Types") {
        where(value: "Super")
    }
}

【问题讨论】:

  • “changeSet”是什么意思? DELETE Types WHERE Value='Super' 有什么问题?还要发布数据库类型 - Oracle? SQL 服务器? MySQL?
  • 看起来您发布了一些 JSON。你在做什么?什么工具?
  • 它是一个叫Grails Db Migration的插件

标签: sql grails database-migration


【解决方案1】:

你需要执行sql:

changeSet(author: "you", id: "1437421083434-8") { sql("DELETE FROM types WHERE value='Super';") }

【讨论】:

  • 我更喜欢使用 SQL 进行 DML 更改,但使用删除没有任何问题。我猜你应该有where("value = 'Super'")。见liquibase.org/documentation/changes/delete.html
  • 问题是我在其他表中使用了Types的id...这就是为什么我得到foreignKey猜测错误的原因。 SQL删除的问题是不安全的
猜你喜欢
  • 2015-05-04
  • 2015-12-28
  • 1970-01-01
  • 2017-01-08
  • 2011-05-22
  • 1970-01-01
  • 1970-01-01
  • 2020-04-02
  • 1970-01-01
相关资源
最近更新 更多