Reputation: 415
I have 2 tables in Postgres ( inventory table and event table ). In the inventory table my primary key consist of 8 strings. Example '03163161'.
Now I have to input them in the Event table randomly with the primary key that is on the inventory table.
In what way can I do it? I've tried googling it but no one seems to have a solution on it and I'm trying to experiment on how i can random input the PK of inventory table to the event table since the data is almost 3k.
Update#1
I've tried using the code below
INSERT INTO dashboard.event(terminal_id) VALUES (SELECT terminal_id FROM dashboard.inventory)
but i get the error:
ERROR: syntax error at or near "SELECT"
LINE 1: INSERT INTO dashboard.event(terminal_id) VALUES (SELECT term...
^
SQL state: 42601
Character: 50
Upvotes: 0
Views: 654
Reputation: 227
I think you want the 'references' keyword. For example:
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
);
Upvotes: 0
Reputation: 227
Don't use the keyword VALUES with a select in the insert. See this question:
Update or Insert (multiple rows and columns) from subquery in PostgreSQL
INSERT INTO dashboard.event(terminal_id)
SELECT terminal_id
FROM dashboard.inventory --should work
Upvotes: 2