如何更改具有 FOREIGN KEY 约束的列的大小?

How to change the size of a column with FOREIGN KEY constraint?

有两个table

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
)

我想将具有 FOREIGN KEY 约束的列 DEPT_ID 的大小更改为等于 5

我尝试更改但出现错误:

ORA-02267: column type incompatible with referenced column type

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

我在创建 tables 时没有为外键提供任何名称。那么我怎样才能在不删除任何 table.??

的情况下做到这一点

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

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

这不需要删除任何表。

您必须先删除外键约束。然后执行你提到的命令。然后加回约束。

按照其他人的建议,您需要删除外键约束。至于约束的名称,我知道 link 下面的 oracle 'sql server' 的解决方案可能会有所帮助。 Display names of all constraints for a table in Oracle SQL