作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
CREATE TABLE movies (
tconst varchar(10),
titleType text,
primaryTitle text,
PRIMARY KEY (tconst)
);
CREATE TABLE crew(
tconst varchar(10) PRIMARY KEY,
directors text[],
writers text[],
CONSTRAINT fk_crew_movies FOREIGN KEY (tconst)
REFERENCES movies(tconst)
);
我有两个数据文件,一个用于电影,一个用于剧组,但是当我将数据从剧组数据文件复制到数据库时出现错误
\copy movies from 'movies.tsv';
\copy crew from 'crew.tsv';
insert or update on table "crew" violates foreign key constraint "fk_crew_movies" DETAIL: Key (tconst)=(tt8038822) is not present in table "movies"
这是因为crew中的所有数据都没有电影数据中的id。所以我必须在复制时忽略或删除该特定数据,如果我将数据转储到其他表并使用 delete 语句删除数据
DELETE FROM crew1 WHERE tconst not in (SELECT tconst FROM movies);
它就像永远一样。我还有其他方法可以做到这一点吗?
最佳答案
在实际上只需要删除几行的情况下,以下可能会更好,因为在选择中使用的构造被称为反连接并被查询优化器识别。
DELETE FROM crew1
WHERE tconst IN (
SELECT c.tconst
FROM crew1 c LEFT JOIN movies m ON c.const=m.const
WHERE m.const IS NULL)
没有子选择的 INSERT 版本
INSERT INTO crew
SELECT c.* FROM crew1 c
JOIN movies m ON c.const=m.const
关于sql - 如果 Postgresql 的父表中不存在外键,则忽略复制(读取)该行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48961249/
我正在使用 Sharepiont,它吐出的代码充其量是困惑的。 我在一个表中有一个 div 的 ID,该表在另一个表中,我需要获取父表的父表。 这是我正在使用的 JsFiddle: http://js
我是一名优秀的程序员,十分优秀!