我正在学习数据库,目前正在研究一个对象关系数据库项目,并且在对象表中遇到了一些可能的约束条件的小问题。我使用的是“数据库系统:全书”,由赫克托·加西亚 - 莫利纳(和其他作者)作为参考,有这样一个一般的SQL例如:类型参考范围
CREATE TYPE StarType AS (
name CHAR(30),
address AddressType,
bestMovie REF(MovieType) SCOPE Movies
);
现在,我有一种类似的键入我的项目,因为它也使用了对类型内其他类型的引用,但是用于放置引用的子句在Oracle中不包含SCOPE(至少我没有在文档中找到它并输出错误) 。所以我有这样的一个类型:
CREATE OR REPLACE TYPE "ApplicationType" AS OBJECT (
"person" REF "PersonType",
"competition" REF "CompetitionType",
"dateApplied" DATE
);
/
...哪些工作。但是,当我想约束的REF列,我可以限制只有一个,像这样:
CREATE TABLE "Applications" OF "ApplicationType" (
"person" SCOPE IS "People" /* or "competition" SCOPE IS "Competitions" */
)
OBJECT IDENTIFIER IS SYSTEM GENERATED;
有什么办法给约束双方REF列?
当你同时尝试时会发生什么?你会得到什么错误信息? – 2009-11-09 15:27:28
我得到“ORA-00904::invalid identifier”错误。但是,当我单独使用这些约束中的任何一个时,表格通常会创建。 – 2009-11-09 15:46:05