Что является лучшим решением для заполнения внешнего ключа таблицы из другой таблицы с другим нет. рядов? - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть следующие таблицы:

CREATE TABLE Countries(
 CoKey SERIAL PRIMARY KEY, 
 Name VARCHAR(256) NOT NULL);


CREATE TABLE Institutions(
 IKey SERIAL PRIMARY KEY, 
 Name VARCHAR(256) NOT NULL, 
 CoKey INT REFERENCES Countries(CoKey));

и файл CSV, загруженный в tmp_table

CREATE TABLE tmp_table (
 AKey VARCHAR(256) PRIMARY KEY, 
 Name VARCHAR(256), 
 Affiliation VARCHAR(256), 
 Country VARCHAR(256), 
 Website VARCHAR(256));

Примечание: tmp_table.Affiliation >> Institutions.name, tmp_table.Country >> Страны.Name

  • Нет. рядов 7000
  • Нет. учреждений 1452 (без дубликатов)
  • Нет. учреждений 4000
  • Нет. стран 3900
  • Нет. стран 67 (без дубликатов)

Я попробовал следующее:

  1. Я создал таблицу стран (67 строк без дубликатов), заполните ее из tmp_table.
  2. Я использовал INSERT INTO + SELECT + FROM, чтобы заполнить таблицу FK in Institutions (1452 строки без дубликатов) (конечно, это не сработало, поскольку существует несоответствие в количестве строк ).

Каково лучшее решение для заполнения внешнего ключа таблицы из другой таблицы с другим номером. рядов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...