如何在登台表上添加删除级联

努尔苏丹

这是我创建表格的方式:

CREATE TABLE TABLE_A(
  id uuid NOT NULL, UNIQUE
  name text
);


CREATE TABLE TABLE_B(
  id uuid NOT NULL, UNIQUE
  name text
);

-- custom realization of many-to-many association
CREATE TABLE TABLE_A_B(
  id uuid NOT NULL, UNIQUE
  a_id uuid REFERENCES TABLE_A(id) ON UPDATE CASCADE,
  B_id uuid REFERENCES TABLE_B(id) ON UPDATE CASCADE
);

我已经创建了表格,现在无法通过添加DELETE CASCADE对其进行更新。现在,我需要将ON DELETE CASCADE添加到登台表TABLE_A_B。怎么做 ?(

戈登·利诺夫

您使用ON DELETE CASCADE

CREATE TABLE TABLE_A_B(
  id uuid NOT NULL UNIQUE,
  a_id uuid REFERENCES TABLE_A(id) ON UPDATE CASCADE ON DELETE CASCADE,
  B_id uuid REFERENCES TABLE_B(id) ON UPDATE CASCADE ON DELETE CASCADE
);

是一个db <> fiddle,它修复了代码中的某些拼写错误。

特别是,外键引用应该是主键尽管允许使用唯一键,但主键的目的实际上是标识单个行-一种主要用途是外键引用。

编辑:

如果约束已经存在,请执行以下操作。

首先,获取他们的名字:

select *
from information_schema.table_constraints
where constraint_type = 'FOREIGN KEY' and table_name = 'table_a_b';

注意:您可以分配名称以跳过此步骤。

然后删除现有的外键约束:

alter table table_a_b
    drop constraint table_a_b_a_id_fkey;

最后,添加一个新的:

alter table table_a_b
    add constraint fk_table_a_b_a
        foreign key (a_id) references table_a(id)
            on update cascade
            on delete cascade;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何添加“在删除级联上”约束?

同一张表上的两个外键:如何在删除级联上实现?

如何在课程表上添加多个班级联系方式7提交按钮

偏执表上的级联删除-Sequelize

如何在级联EF核心上删除

如何在Objectify中实现级联删除?

如何在Angularfire中进行级联删除?

Intershop EDL建模-如何在级联删除中添加依赖项

如何在Rails中使用级联删除将列添加为外键

如何在Google App Engine上设置登台环境

如何在表上删除聚簇索引(如果存在)并添加新的聚簇索引?

实体框架:如何在一种相关实体上启用级联删除

SQL Server-如何在仅更新(不删除)上获取假的多个级联路径?

如何在空表上添加记录

删除级联上的 MySQL,源表中的 FK

如何在“删除”按钮上删除表中的行

如何更改表并添加onDelete级联约束sqlite

如何在动态添加的表行中创建级联下拉列表并保存在数据库中

如何在PostgreSQL中的多个列上级联删除

如何在C#中处理级联删除异常

如何在Nautilus工具栏上添加/删除按钮?

如何在代码上删除PhpStorm自动添加的文本

如何在JavaScript中添加和删除图像上的边框

如何在fabricjs中从画布上删除添加的模板?

如何在Eclipse上添加/删除视图按钮?

如何在Jquery中的元素上删除/添加活动类?

如何在Android Studio上添加/删除缩进级别

Laravel:如何在删除按钮上添加确认?

如何在单选按钮上添加和删除类?