是否可以更改h2中现有表的架构?例如,在我的项目中,我将postgres中表的shema更改为: ALTER TABLE my_table SET SCHEMA gestion; 但在我的h2测试中,我有一个错误 expected "REFERENTIAL_INTEGRITY"; 所以我试着用 ALTER TABLE my_table SET REFERENTIAL_INTEGRITY FALSE; 但是没有结果,我也有同样的错误。有什么想法吗?谢谢
ALTER TABLE my_table SET SCHEMA gestion;
expected "REFERENTIAL_INTEGRITY";
ALTER TABLE my_table SET REFERENTIAL_INTEGRITY FALSE;
db2dz4w81#
不,目前还不可能,H21.4.200和从当前源代码编译的h2都不支持这一点。sql标准也没有定义这样的操作,它完全是特定于供应商的。您只能创建一个新表并将旧表的内容复制到其中(使用 CREATE TABLE gestion.my_table AS TABLE my_table ,但将表的完整定义添加到此命令中会更安全)。您还需要为新表创建所有约束和索引。如果其他表引用了此表,您还需要自己更新这些引用。之后你就可以把旧table扔了。
CREATE TABLE gestion.my_table AS TABLE my_table
1条答案
按热度按时间db2dz4w81#
不,目前还不可能,H21.4.200和从当前源代码编译的h2都不支持这一点。sql标准也没有定义这样的操作,它完全是特定于供应商的。
您只能创建一个新表并将旧表的内容复制到其中(使用
CREATE TABLE gestion.my_table AS TABLE my_table
,但将表的完整定义添加到此命令中会更安全)。您还需要为新表创建所有约束和索引。如果其他表引用了此表,您还需要自己更新这些引用。之后你就可以把旧table扔了。