Java H2:更改现有表的架构
可以更改H2中现有表的架构吗 例如,在我的项目中,我将Postgres中表格的shema更改为:Java H2:更改现有表的架构,java,spring-boot,h2,flyway,Java,Spring Boot,H2,Flyway,可以更改H2中现有表的架构吗 例如,在我的项目中,我将Postgres中表格的shema更改为: ALTER TABLE my_TABLE SET SCHEMA gesting 但是在我的H2测试中,我有一个错误期望的“引用完整性” 所以我试着用 ALTER TABLE my_TABLE SET REFERENTIAL_INTEGRITY FALSE 但是没有结果,我也有同样的错误 有什么想法吗?谢谢不,现在还不可能,H2 1.4.200和当前来源编译的H2都不支持这一点。SQL标准也没有定义这
ALTER TABLE my_TABLE SET SCHEMA gesting代码>
但是在我的H2测试中,我有一个错误期望的“引用完整性”代码>
所以我试着用
ALTER TABLE my_TABLE SET REFERENTIAL_INTEGRITY FALSE代码>
但是没有结果,我也有同样的错误
有什么想法吗?谢谢不,现在还不可能,H2 1.4.200和当前来源编译的H2都不支持这一点。SQL标准也没有定义这样的操作,它完全是特定于供应商的
您只能创建一个新表并将旧表的内容复制到该表中(例如,使用create table gestion.my_table AS table my_table
,但将表的完整定义添加到此命令中会更安全)。您还需要为新表创建所有约束和索引。如果其他一些表引用了该表,您还需要自己更新这些引用。之后,您可以放下旧桌子。谢谢您的回复。因此建议不要使用命令altertable my_TABLE SET SCHEMA gestion代码>也在Postgres中?您可以在PostgreSQL中使用此命令。但是H2需要一些其他的解决方案。只有当您希望在两个DBMS上使用完全相同的命令时,才应该在PostgreSQL中避免使用此命令,但实际上它们还有许多其他差异,因此如果您确实需要同时支持这两个命令,则很可能需要不时为它们编写不同的SQL。