PostgreSQL - PRIMARY KEY
The PostgreSQL PRIMARY KEY constraint is used to ensure that all values in a column of a table are UNIQUE and NOT NULL. A table can have only one PRIMARY KEY constraint, and a primary key can consist of single or multiple columns (fields).
PostgreSQL PRIMARY KEY constraint with CREATE TABLE
The below mentioned statement creates a table called Employee which contains five columns: EmpID, Name, City, Age and Salary in which PRIMARY KEY constraint is applied on column EmpID.
CREATE TABLE Employee ( EmpID INT NOT NULL PRIMARY KEY, Name VARCHAR(255), City VARCHAR(100), Age INT, Salary DECIMAL(18,2) );
Alternatively, it can also be created as mentioned below:
CREATE TABLE Employee ( EmpID INT NOT NULL, Name VARCHAR(255), City VARCHAR(100), Age INT, Salary DECIMAL(18,2), PRIMARY KEY(EmpID) );
To provide a name to PRIMARY KEY constraint, and to define a PRIMARY KEY constraint on multiple columns (say EmpID and Name), the statement is given below:
CREATE TABLE Employee ( EmpID INT NOT NULL, Name VARCHAR(255), City VARCHAR(100), Age INT, Salary DECIMAL(18,2), CONSTRAINT PK_Employee PRIMARY KEY(EmpID, Name) );
PostgreSQL PRIMARY KEY constraint with ALTER TABLE
In the above example, a table called Employee is created. To enforce PRIMARY KEY constraint on EmpID column, the statement is given below:
ALTER TABLE Employee ADD PRIMARY KEY (EmpID);
To provide a name to PRIMARY KEY constraint, and to define a PRIMARY KEY constraint on multiple columns (say EmpID and Name), the statement is given below:
ALTER TABLE Employee ADD CONSTRAINT PK_Employee PRIMARY KEY (EmpID, Name);
DROP PRIMARY KEY constraint
To drop PK_Employee PRIMARY KEY constraint from table called Employee, the statement is given below:
ALTER TABLE Employee DROP CONSTRAINT PK_Employee;