我有两个结构如下所述的表:
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 的行 - 没有依赖关系。
有任何想法吗?