无法在Bluemix上的DashDB/DB2中的表上添加外键

rem*_*dev 2 db2 foreign-keys dashdb ibm-cloud

当我在Bluemix上的DashDB(DB2)中创建一个表时,如下所示:

CREATE TABLE DEPARTMENT (
    depname CHAR (10) UNIQUE NOT NULL ,
    phone   INTEGER
  ) ;
ALTER TABLE DEPARTMENT ADD CONSTRAINT DEPARTMENT_PK PRIMARY KEY ( depname ) ;

CREATE TABLE EMPLOYEE (
    "EmpNr"          NUMERIC (3) UNIQUE NOT NULL ,
    empname         CHAR (20) ,
    depname         CHAR (10) ,
    EMPLOYEE2_title CHAR (20)
  );
ALTER TABLE EMPLOYEE ADD CONSTRAINT EMPLOYEE_PK PRIMARY KEY ( "EmpNr" ) ;

ALTER TABLE EMPLOYEE ADD CONSTRAINT EMPLOYEE_DEPARTMENT_FK FOREIGN KEY (depname ) REFERENCES DEPARTMENT ( depname ) ;
Run Code Online (Sandbox Code Playgroud)

Bluemix不允许为此表类型添加外键约束.

dat*_*rik 5

当您查看dashDB(而不是DB2)的文档时,您会注意到可以创建外键.但是,默认情况下会创建一个按列组织的表.仅支持非强制参照约束.在您的示例中,您需要在语句中添加NOT ENFORCED:

ALTER TABLE EMPLOYEE 
 ADD CONSTRAINT EMPLOYEE_DEPARTMENT_FK FOREIGN KEY (depname ) 
 REFERENCES DEPARTMENT ( depname ) NOT ENFORCED;
Run Code Online (Sandbox Code Playgroud)