У меня есть 2 большие таблицы
CREATE TABLE "public"."linkages" (
"supplierid" integer NOT NULL,
"articlenumber" character varying(32) NOT NULL,
"article_id" integer,
"vehicle_id" integer
);
CREATE INDEX "__linkages_datasupplierarticlenumber" ON "public"."__linkages" USING btree ("datasupplierarticlenumber");
CREATE INDEX "__linkages_supplierid" ON "public"."__linkages" USING btree ("supplierid");
с 215 000 000 записей и
CREATE TABLE "public"."article" (
"id" integer DEFAULT nextval('tecdoc_article_id_seq') NOT NULL,
"part_number" character varying(32),
"supplier_id" integer,
CONSTRAINT "tecdoc_article_part_number_supplier_id" UNIQUE ("part_number", "supplier_id")
) WITH (oids = false);
с 5 500 000 записей.
Мне нужно обновить связи .article_id в соответствии с article.part_number и article.supplier_id, вот так:
UPDATE linkages
SET article_id = article.id
FROM
article
WHERE
linkages.supplierid = article.supplier_id AND
linkages.articlenumber = article.part_number;
Но это слишком тяжело. Я попробовал это, но он обработал за день без результата. Поэтому я прекратил его.
Мне нужно сделать это обновление только один раз, чтобы нормализовать структуру данных для использования внешних ключей в Django ORM. Как я могу решить эту проблему?
Большое спасибо!