我需要使用 JPA 注释 (@Entity) 重命名在 hibernate 中映射的表。 如果我重命名该表,Hibernate 将创建一个新表,因此我在 Flyway ( https://flywaydb.org/ ) 上编写了一个脚本,删除该表并将旧表重命名为新表。
问题是,如果我运行此脚本两次,它将删除重命名的数据库,从而丢失所有数据。我想写这样的东西
DROP TABLE 'NEW_TABLE' IF 'OLD_TABLE' EXISTS;
RENAME TABLE 'OLD_TABLE' TO 'NEW_TABLE';
我不知道如何在 MySql 中执行此操作,可能吗?
最佳答案
如果我正确理解您的问题,则创建一个名为 newName 的新表并执行以下语句。它的作用是滑动表名称并在数据库外部执行此操作,然后将实体的名称更改为 newName。只有在那之后才继续运行您的项目。 这应该适合你:
RENAME TABLE `oldName` TO `newName`
关于java - 使用hibernate更改mysql中的表名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43810546/