2012-12-07 55 views
0

我正在使用Oracle Express Eddition 10g。Oracle - 我可以使用命名约束来声明外键吗?

下DDL抛出一个DB错误就行了 “提及TABLE_A_PK”

“SQL错误:ORA-00942:表或视图不存在”

CREATE TABLE TABLE_A (
    COLUMN_A NUMBER, 
    COLUMN_B NUMBER, 
    COLUMN_C NUMBER, 
    COLUMN_D NUMBER, 
    CONSTRAINT TABLE_A_PK 
     PRIMARY KEY (COLUMN_A, COLUMN_B) 
) 

CREATE TABLE TABLE_B (
    COLUMN_A NUMBER, 
    COLUMN_B NUMBER, 
    COLUMN_Y NUMBER, 
    COLUMN_Z NUMBER, 

    CONSTRAINT TABLE_A_FK 
     FOREIGN KEY (COLUMN_A, COLUMN_B) 
     REFERENCES TABLE_A_PK 
) 

我可以使用一个名为限制为外键引用?如果是这样如何?

回答

1

您不指定您引用的键的名称,而是指定列,否则不能引用约束的名称。你需要指定类似

CREATE TABLE TABLE_B (
    COLUMN_A NUMBER, 
    COLUMN_B NUMBER, 
    COLUMN_Y NUMBER, 
    COLUMN_Z NUMBER, 

    CONSTRAINT TABLE_A_FK 
     FOREIGN KEY (COLUMN_A, COLUMN_B) 
     REFERENCES TABLE_A(COLUMN_A, COLUMN_B) 
)