用hibernate在mysql中更改表名

时间:2017-05-05 17:17:42

标签: java mysql hibernate jpa

我需要使用JPA注释(@Entity)重命名在hibernate中映射的表。 如果我重命名该表,Hibernate将创建一个新表,所以我在flyway(https://flywaydb.org/)上编写了一个脚本,删除它并将旧的重命名为新的。

问题是,如果我运行此脚本两次,它将删除重命名的数据库,丢失所有数据。我想写这样的东西

DROP TABLE 'NEW_TABLE' IF 'OLD_TABLE' EXISTS;
RENAME TABLE 'OLD_TABLE' TO 'NEW_TABLE';

我不知道如何在MySql中执行此操作,是否可能?

1 个答案:

答案 0 :(得分:0)

如果我正确理解您的问题,请创建一个名为newName的新表并执行以下语句。它的作用是刷新表名并在数据库外部执行,然后将实体名称更改为newName。只有在那之后才开始运行你的项目。 这对你有用:

RENAME TABLE `oldName` TO `newName`