PostgreSQL - How to add a foreign key?
You have two tables:
CREATE TABLE customers (
id SERIAL PRIMARY KEY,
full_name TEXT
);
and
CREATE TABLE orders (
order_id SERIAL,
dish_name TEXT,
customer_id INTEGER
);
And you want to make customer_id from orders refer to id from customer.
There are a couple ways to do that.
1. Define the foreign key inside the CREATE TABLE statement
CREATE TABLE orders (
order_id SERIAL,
dish_name TEXT,
customer_id INTEGER REFERENCES customers (id)
);
2. Use a separate ALTER TABLE statement
ALTER TABLE orders
ADD CONSTRAINT fk_orders_customers FOREIGN KEY (customer_id) REFERENCES customers (id);
3. Use TablePlus GUI tool for Postgres
You can create a foreign key directly from the GUI Tool.
- Select to view table
ordersfrom the right sidebar - Switch to
structuretab at the bottom bar - Choose
customer_idcolumn and add a foreign key in the foreign_key field.
Remember to press Cmd + S to commit the changes to the server.

Need a good GUI Tool for PostgreSQL? TablePlus is a modern, native tool with an elegant UI that allows you to simultaneously manage multiple databases such as MySQL, PostgreSQL, SQLite, Microsoft SQL Server and more.
Not on Mac? Download TablePlus for Windows.
On Linux? Download TablePlus for Linux
Need a quick edit on the go? Download TablePlus for iOS.
