Primary Key
We can assign a primary key to a single column or to a combination of columns, either when creating a table (CREATE TABLE
) or when altering a table (ALTER TABLE
).
CREATE TABLE person (
id BIGSERIAL PRIMARY KEY,
name VARCHAR(100)
);
CREATE TABLE person (
id BIGSERIAL,
name VARCHAR(100),
PRIMARY KEY (id, name)
);
ALTER TABLE person ADD PRIMARY KEY (id);
ALTER TABLE person ADD PRIMARY KEY (id, name);
To remove a primary key from a table, you can use the ALTER TABLE
statement to do it. Find the name of the primary key by using \d table_name
before removing it.
ALTER TABLE person DROP CONSTRAINT person_pkey;
Foreign Key
We can create a relationship between two tables by using a foreign key from the child table to create a link to the primary key of the parent table. Creating a relationship between two tables can enable us to perform some useful commands, like JOIN
, to join two tables.
CREATE TABLE person (
id BIGSERIAL PRIMARY KEY,
name VARCHAR(100)
);
CREATE TABLE car (
id BIGSERIAL PRIMARY KEY,
person_id BIGINT,
FOREIGN KEY (person_id) REFERENCES person (id)
);
To remove a foreign key from a table, you can also use the ALTER TABLE
statement do to it.
ALTER TABLE car DROP CONSTRAINT car_person_id_fkey;
References