【发布时间】:2010-12-16 07:41:33
【问题描述】:
下面的 SQL 语句在 DB2 LUW 9.7 上运行良好,但在 DB2 for z/OS 9.1 上运行失败,为什么以及如何使它工作?
CREATE TABLE HIERARCHY_TEST (
HIER_URI VARCHAR(255) NOT NULL,
PARENT_URI VARCHAR(255),
TITLE VARCHAR(1000) NOT NULL,
MIMETYPE VARCHAR(100),
DESCRIPTION VARCHAR(1000),
MODIFIED_BY VARCHAR(1000),
CONSTRAINT PK_SFIND_HIERARCHY PRIMARY KEY (HIER_URI ),
CONSTRAINT FK_ND_HIERARCHY_1 FOREIGN KEY (PARENT_URI) REFERENCES HIERARCHY_TEST ( HIER_URI)
)
我收到的错误消息是“DEV.FIND_HIERARCHY_TEST IS AN UNDEFINED NAME. SQLCODE=-204, SQLSTATE=42704, DRIVER=3.53.71”
谢谢。
【问题讨论】:
-
我不确定 DB2 如何处理自引用外键;您是否尝试过在没有外键的情况下定义表,然后使用
ALTER TABLE添加约束? -
有趣的是,DEV.FIND_HIERARCHY_TEST 不是脚本中对象的名称——肯定是上面的 sn-p 引起了服务器的响应吗?
-
感谢编辑我的帖子 El。我只是尝试在单独的 ALTER TABLE 语句中定义 PK 和 FK 并且它有效。但是我仍然不明白为什么原始语句不适用于所有 DB2 数据库。 DB2 for z/OS 和其他 DB2 数据库有什么区别?
-
@Will A,DEV是当前用户的默认schema,所以会自动添加到服务器返回的消息中。
-
好的,太好了;我认为这可能是问题所在,因为我之前在其他 DBMS 中也遇到过类似的问题。