mysql - 为什么在级联更新中插入数据后我的子表 tblOefenen2 没有得到更新?
问题描述
我有两个名为 tblOefenen(带主键)和 tblOefenen2(带外键)的表。我很早就放弃了外键,因为我想将“更新级联”添加到外键中。
那么做了什么: 1. 我删除了 tbloefenen2 的约束(外键)。2. 我已将新外键添加到列 ID,我的主键也在列 ID 上以及表 tbloefenen 中:
begin tran
alter table tbloefenen2
ADD constraint pkoefenen2 FOREIGN KEY (ID)
references tbloefenen (ID)
on UPDATE cascade
rollback tran
- 我在 tbloefenen(主键表)中插入了一些数据: Begin tran
UPDATE tblOefenen
set naam = 'anouk'
where naam = 'Svenn'
select *
from tblOefenen
rollback tran
- 在我插入上面的数据后,只有父(主键)表得到更新.. tbloefenen2(带有外键)保持不变(我希望在插入父主键表后自动更新)
有人可以帮帮我吗?
解决方案
ON UPDATE CASCADE
仅当您更新外键中的列时适用,而不适用于表中的其他列。所以如果你这样做
UPDATE tblOefenen
SET ID = 10
WHERE ID = 20;
SELECT *
FROM tblOefenen2;
然后您会看到ID = 10
更改为ID = 20
.
推荐阅读
- asp.net-core - 如何将所有消息从 System.Diagnostics.Trace 传输到 ILogger?
- java - 在 NXT Brick 上读取上传的文件
- php - 安装 grav localhost debian
- javascript - 避免拆分第一个字符串的数组时的第一个空格
- powershell - `curl -L 的 PowerShell 等效项是什么 https://unpkg.com/@pnpm/self-installer | 节点`?
- git - Git 无法推送到远程裸仓库
- deep-learning - BERT NLP 模型的输入形式是什么?
- php - 有没有办法将 .env 变量传递给我的 app.json 文件?
- statistics - 给定结构的稳定性分析,如何纠正多个高斯变量?
- python - 使用 for 循环将方法分配给 QScrollbars 的 valueChanged 信号似乎不起作用