背景: 我有一个用Grails编写的Web应用程序的后端,它与MySQL数据库进行通信。我使用Grails数据库迁移插件来控制数据库结构,updateOnStart设置为true(我很少使用插件的命令行界面)。
问题: 使用SQL查询和'捆绑更改之间是否存在任何实际差异?在变更集中?
实施例: 我有什么理由可以这样做吗青睐:
addColumn(tableName: 'table_x'){
column(name: 'new_column', type: 'int', defaultValue: 0){
constraints(nullable: 'false')
}
}
在
sql(sql: 'ALTER TABLE table_x ADD COLUMN new_column INT NOT NULL DEFAULT 0;')
?或者那两个是完全可以互换的?
答案 0 :(得分:1)
这取决于您创作的SQL。只要您编写可移植SQL然后就没关系,只有当您针对不支持您编写的SQL的不同类型的数据库时才重要。