HSQLDB - 在外键中引用 INFORMATION_SCHEMA

Posted

技术标签:

【中文标题】HSQLDB - 在外键中引用 INFORMATION_SCHEMA【英文标题】:HSQLDB - Referencing INFORMATION_SCHEMA in foreign key 【发布时间】:2019-04-17 13:33:59 【问题描述】:

我尝试在现有表上创建外键。 FK 应该引用包含在 INFORMATION:SCHEMA 中的表上的列。

但这似乎是不可能的。 对吗?

更新 这是我执行的(作为超级用户):ALTER TABLE MY_TABLE ADD CONSTRAINT MY_TABLE_FK FOREIGN KEY (A, B, C) REFERENCES CATALOG.INFORMATION_SCHEMA.TABLES (TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME)

这是我得到的错误:[42501][-5501] user lacks privilege or object not found: INFORMATION_SCHEMA.TABLES java.lang.RuntimeException: org.hsqldb.HsqlException: user lacks privilege or object not found: INFORMATION_SCHEMA.TABLES

不是很有帮助,因为我使用的用户拥有所有可能的权限并且对象肯定存在。

【问题讨论】:

您看到的错误信息是什么? 见how to use foreign-keys with hsql create table。 @TimBiegeleisen 我用更多细节更新了这个问题。 【参考方案1】:

INFORMATION_SCHEMA.TABLES 是一个视图,因此没有 PRIMARY KEY 约束。因此无法创建 FOREIGN KEY 来引用它。

【讨论】:

以上是关于HSQLDB - 在外键中引用 INFORMATION_SCHEMA的主要内容,如果未能解决你的问题,请参考以下文章

在 JBoss5.1 中使用 HSQLDB

HSQLDB 触发器 - 引用新表

HSQLDB 删除生成的引用其他表的约束

如何从对象的外键中获取对象的值?

检查实体是不是在外部表中被引用并获取实体

休眠 HSQLDB - DuplicateMappingException