【问题标题】:Oracle deleting rows from multiple tablesOracle从多个表中删除行
【发布时间】:2018-09-26 20:16:13
【问题描述】:

我正在尝试从多个表中删除行,但我在 medewerkers m 处遇到语法错误,

谁能告诉我我在这里做错了什么? :

declare
v_mnr medewerkers.mnr%type;
procedure ontsla_med(p_mnr in medewerkers.mnr%type)
IS
BEGIN
    DELETE FROM medewerkers m, INSCHRIJVINGEN i , UITVOERINGEN u WHERE m.MNR = p_mnr and i.cursus = p_mnr and u.docent = p_mnr;
END ontsla_med;
BEGIN
    ontsla_med(7000);
END;

好像delete语句错了?

【问题讨论】:

  • 每张表一个 DELETE。
  • 或者,您可能会尝试从父表和子表中删除数据,在这种情况下,您可能希望使用 ON DELETE CASCADE 选项创建外键约束。

标签: sql oracle plsql


【解决方案1】:

做不到。它必须是三个单独的删除。

DELETE 
  FROM medewerkers
 WHERE mnr = p_mnr;

DELETE 
  FROM UITVOERINGEN 
 WHERE cursus = p_mnr;

DELETE 
  FROM UITVOERINGEN 
 WHERE docent = p_mnr;

【讨论】:

  • 谢谢,认为可以一次添加多个表
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-02-15
  • 2021-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-09
相关资源
最近更新 更多