Spring MVC hib列唯一属性未更改

noj0wjuj  于 2023-02-05  发布在  Spring
关注(0)|答案(3)|浏览(113)

有没有办法在不删除表的情况下将列属性从unique=true更改为unique=false
现在我陷入了这样一种情况,即表已经在前面创建,并且这些表也包含数据。当我将unique=true更改为unique=false时,表中没有任何更改。

ymdaylpp

ymdaylpp1#

在数据库中可以很容易地做到这一点,假设我有一个Person表,其中Person_name有一个唯一约束。

ALTER TABLE Person
DROP INDEX Person_name;

or

ALTER TABLE Persons
DROP CONSTRAINT Person_name;

如果您尝试使用hib实现同样的操作,hib将尝试删除并再次创建表,这是您不希望发生的。

7dl7o3gd

7dl7o3gd2#

嗯......我不知道您是否允许自己删除数据库,但您可以尝试在应用程序属性文件中用途:

spring.jpa.hibernate.ddl-auto=update

spring.jpa.hibernate.ddl-auto=create-drop

更多信息:
https://docs.spring.io/spring-boot/docs/current/reference/html/howto-database-initialization.html
此外,如果您知道数据库模式将有很多更改,并且希望使其易于工作,则应该熟悉https://www.liquibase.org/

ogq8wdun

ogq8wdun3#

Hibernate不会更新以实现表上的约束,因为现有表可能存在不一致性,因此可能会出错。

相关问题