如何使用 FOREIGN KEY 约束更改列的大小?

Raj*_*ngh 2 sql oracle oracle10g

有两张桌子

DEPT (
    DEPT_ID NUMBER(5) PRIMARY KEY,
    DEPT_NAME VARCHAR2(10)
);

COURSE (
    COURSE_ID NUMBER(5) PRIMARY KEY,
    COURSE_NAME VARCHAR2(15),DEPT_ID NUMBER(5),
    FOREIGN KEY(DEPT_ID) REFERENCES DEPT
)
Run Code Online (Sandbox Code Playgroud)

我想更改具有约束5的列的大小。 DEPT_IDFOREIGN KEY

我尝试更改但它给出了错误:

ORA-02267: 列类型与引用的列类型不兼容

这是因为它违反了外键约束。

在创建表时,我没有为外键提供任何名称。那么我怎样才能在不丢任何桌子的情况下做到这一点呢??

Gor*_*off 5

我认为您需要执行以下操作:

  • 删除表的外键约束(您可以使用alter table drop constraint)。
  • 更改所有表中的数据类型(您可以使用alter table modify column
  • 将外键约束添加回 ( alter table add constraint)

这不需要删除任何表。