gpt4 book ai didi

python - 使用 Postgres COPY 命令的多对多关系

转载 作者:行者123 更新时间:2023-11-29 13:55:41 25 4
gpt4 key购买 nike

运行 Postgres COPY 命令时是否可以包含多对多关系?如果是这样,你能举个例子吗?

例如:

CREATE TABLE "lap" (
"id" serial NOT NULL PRIMARY KEY,
"Lap_number" integer,
"Lap_time" interval,
)
;
CREATE TABLE "datasinglerace_Laps" (
"id" serial NOT NULL PRIMARY KEY,
"datasinglerace_id" integer NOT NULL,
"lap_id" integer NOT NULL REFERENCES "lap" ("id") DEFERRABLE INITIALLY DEFERRED,
UNIQUE ("datasinglerace_id", "lap_id")
)
;
CREATE TABLE "datasinglerace" (
"id" serial NOT NULL PRIMARY KEY,
"Notes" text,
)
;
ALTER TABLE "datasinglerace_Laps" ADD CONSTRAINT "datasinglerace_id_refs_id_620382df" FOREIGN KEY ("datasinglerace_id")
REFERENCES "datasinglerace" ("id") DEFERRABLE INITIALLY DEFERRED;

圈对象已经在数据库中。对于 COPY 文件,我想放入 datasinglerace id 的信息和 lap 对象的 列表id 我想附加。我要附加的膝上对象的数量是可变的。

此 SQL 是使用 Django 框架创建的。我想将它保留在 Django 框架中,所以我不想更改 SQL。导入数据真的很慢,所以我正在努力提高导入数据的速度。

最佳答案

您可以使用COPY 来提高一次性导入批量数据的速度——我通常不会使用它——你隔离瓶颈了吗?你从什么地方抄袭?您将需要与表格结构相同的 CSV 文件之类的文件。

COPY 直接复制到 PostgreSQL 它与 Django 无关,因此您需要使用 pgsql 或您使用的任何工具与 Postgres 交互。您的命令将如下所示:

COPY datasinglerace FROM datasinglerace.csv;
COPY datasinglerace_Laps FROM datasinglerace_Laps.csv;

COPY 有很多选项,请参阅 documentation .

注意任何被其他东西引用的东西都需要先添加,否则你需要放宽(删除然后添加回来)你的引用约束。在这种情况下,您需要最后COPY datasinglerace_Laps 以便它的引用已经存在

关于python - 使用 Postgres COPY 命令的多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32447430/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com