如何在 ALTER TABLE 语句中添加“ON DELETE CASCADE"

2021-12-06 00:00:00 sql oracle

我的表中有一个外键约束,我想向它添加 ON DELETE CASCADE.

我已经试过了:

<前>更改表 child_table_name修改约束 fk_name外键(child_column_name)在删除级联上引用 parent_table_name (parent_column_name);

不起作用.


外键已存在,外键列有数据.

执行语句后得到的错误信息:

<前>ORA-02275: 表中已存在此类引用约束

解决方案

您不能将 ON DELETE CASCADE 添加到已存在的约束中.您必须drop 并重新create 约束.文档a> 显示MODIFY CONSTRAINT 子句只能修改约束状态(即:ENABLED/DISABLED...).

I have a foreign key constraint in my table, I want to add ON DELETE CASCADE to it.

I have tried this:

alter table child_table_name
  modify constraint fk_name
  foreign key (child_column_name)
  references parent_table_name (parent_column_name) on delete cascade;

Doesn't work.

EDIT:
Foreign key already exists, there are data in foreign key column.

The error message I get after executing the statement:

ORA-02275: such a referential constraint already exists in the table

解决方案

You can not add ON DELETE CASCADE to an already existing constraint. You will have to drop and re-create the constraint. The documentation shows that the MODIFY CONSTRAINT clause can only modify the state of a constraint (i-e: ENABLED/DISABLED...).

相关文章