【问题标题】:Oracle - Can I declare a foreign key using a named constraint?Oracle - 我可以使用命名约束声明外键吗?
【发布时间】:2012-11-26 00:56:43
【问题描述】:

我使用的是 Oracle Express 10g。

下面的 DDL 在带有“REFERENCES TABLE_A_PK”的行上引发 DB 错误

“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
)

我可以使用命名约束作为外键引用吗?如果有怎么办?

【问题讨论】:

    标签: oracle10g foreign-keys constraints ddl


    【解决方案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 )
    )
    

    【讨论】:

      猜你喜欢
      • 2011-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-06
      • 2011-08-18
      • 1970-01-01
      相关资源
      最近更新 更多