Elijah Leis
Elijah Leis

Reputation: 415

PostgreSQL randomize foreign key

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

Answers (2)

Craeft
Craeft

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

Craeft
Craeft

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

Related Questions