0

我有两个结构如下所述的表:

CREATE TABLE products
(
  id integer NOT NULL,
  name text,
  CONSTRAINT pk_first PRIMARY KEY (id)
)
WITH (
  OIDS=FALSE
);

CREATE TABLE events
(
  id integer NOT NULL,
  parent integer,
  CONSTRAINT pk_second PRIMARY KEY (id)
)
WITH (
  OIDS=FALSE
);

INSERT INTO events (
  id, parent)
  VALUES (1, 1), (2, 1), (3, 1), (4, 2), (5, 3), (6, 6), (7, 6); 

INSERT INTO products(
            id, name)
    VALUES (1,'A'), (2,'B'),(3,'C'),(4,'D');

现在,我必须从与产品无关的事件表中删除所有行。通过连接,我的意思是连接来自事件的 ID 和来自产品的 ID,但是没有外键,并且在事件表中可以是与产品中的行不等效的行。

我无法删除任何依赖于通过 parent_id 连接的行。

例子:

从产品表中检查 id 为 3 的行我无法在表事件中删除 id 为 3 的行,并且我无法删除任何 id 为 1、2、4 和 5 的行 -> 因为它们都依赖于 3 到 parent_id。但我可以删除 id 为 6 和 7 的行 - 没有依赖关系。

有任何想法吗?

4

0 回答 0