PostgreSQL рандомизировать внешний ключ - PullRequest
0 голосов
/ 31 марта 2020

У меня есть 2 таблицы в Postgres ( таблица инвентаря и таблица событий ). В таблице инвентаризации мой первичный ключ состоит из 8 строк. Пример '03163161'.

Теперь я должен произвольно ввести их в таблицу событий с помощью первичного ключа, который находится в таблице инвентаря.

Каким образом я могу это сделать? Я попытался найти его в Google, но, похоже, ни у кого нет решения, и я пытаюсь поэкспериментировать с тем, как я могу произвольно ввести PK таблицы инвентаризации в таблицу событий, поскольку данные почти 3k.

Обновление # 1

Я пытался использовать код ниже

INSERT INTO dashboard.event(terminal_id) VALUES (SELECT terminal_id FROM dashboard.inventory)

, но я получаю сообщение об ошибке:

ERROR:  syntax error at or near "SELECT"
LINE 1: INSERT INTO dashboard.event(terminal_id) VALUES (SELECT term...
                                                         ^
SQL state: 42601
Character: 50

Ответы [ 2 ]

2 голосов
/ 31 марта 2020

Не используйте ключевое слово VALUES с выбором в вставке. См. Этот вопрос:

Обновить или вставить (несколько строк и столбцов) из подзапроса в PostgreSQL

INSERT INTO dashboard.event(terminal_id) 
SELECT terminal_id 
FROM dashboard.inventory --should work
0 голосов
/ 31 марта 2020

Я думаю, что вы хотите ключевое слово "ссылки". Например:

https://www.postgresql.org/docs/current/ddl-constraints.html

create table inventory
(
 id INTEGER NOT NULL UNIQUE,
 ... other fields
);

create table events
(
 eid INTEGER REFERENCES inventory(id),
 ... other fields
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...