我有两张表格,结构如下:
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连接的行。
示例:
从products表中检查id为3的行我无法在表事件中删除id为3的行,并且我无法删除ID为1,2,4和5的任何行 - >因为它们都依赖于3到parent_id。但我可以删除id为6和7的行 - 没有依赖项。
有什么想法吗?