h2:更改现有表的模式

gjmwrych  于 2021-07-11  发布在  Java
关注(0)|答案(1)|浏览(279)

是否可以更改h2中现有表的架构?
例如,在我的项目中,我将postgres中表的shema更改为: ALTER TABLE my_table SET SCHEMA gestion; 但在我的h2测试中,我有一个错误 expected "REFERENTIAL_INTEGRITY"; 所以我试着用 ALTER TABLE my_table SET REFERENTIAL_INTEGRITY FALSE; 但是没有结果,我也有同样的错误。
有什么想法吗?谢谢

db2dz4w8

db2dz4w81#

不,目前还不可能,H21.4.200和从当前源代码编译的h2都不支持这一点。sql标准也没有定义这样的操作,它完全是特定于供应商的。
您只能创建一个新表并将旧表的内容复制到其中(使用 CREATE TABLE gestion.my_table AS TABLE my_table ,但将表的完整定义添加到此命令中会更安全)。您还需要为新表创建所有约束和索引。如果其他表引用了此表,您还需要自己更新这些引用。之后你就可以把旧table扔了。

相关问题