Java 使用hibernate更改mysql中的表名
我需要使用JPA注释(@Entity)重命名在hibernate中映射的表。 如果我重命名该表,Hibernate将创建一个新表,因此我在flyway()上编写了一个脚本,删除它并将旧表重命名为新表 问题是,如果我运行此脚本两次,它将删除重命名的数据库,从而丢失所有数据。我想写这样的东西Java 使用hibernate更改mysql中的表名,java,mysql,hibernate,jpa,Java,Mysql,Hibernate,Jpa,我需要使用JPA注释(@Entity)重命名在hibernate中映射的表。 如果我重命名该表,Hibernate将创建一个新表,因此我在flyway()上编写了一个脚本,删除它并将旧表重命名为新表 问题是,如果我运行此脚本两次,它将删除重命名的数据库,从而丢失所有数据。我想写这样的东西 DROP TABLE 'NEW_TABLE' IF 'OLD_TABLE' EXISTS; RENAME TABLE 'OLD_TABLE' TO 'NEW_TABLE'; 我不知道如何在MySql中实现这一
DROP TABLE 'NEW_TABLE' IF 'OLD_TABLE' EXISTS;
RENAME TABLE 'OLD_TABLE' TO 'NEW_TABLE';
我不知道如何在MySql中实现这一点,有可能吗?如果我正确理解了您的问题,那么创建一个名为newName的新表,并执行以下语句。它所做的是在数据库外部滑动表名,然后将实体名称更改为newName。只有在这之后,才能继续运行您的项目。 这应该适合您:
RENAME TABLE `oldName` TO `newName`
如果未删除新名称,则会出现错误“表'newName'已存在”。Hibernate必须在脚本runsI编辑我的答案之前创建表(空),请尝试我的解决方案,它应该可以工作。