bugl
bugl
HomeLearnPatternsPathsSearchPremium
HomeLearnPatternsPaths
Learn/SQL/SQL Database
SQL•SQL Database

SQL PRIMARY KEY Constraint

The PRIMARY KEY constraint uniquely identifies each record in a database table.

A PRIMARY KEY constraint ensures unique values, and cannot contain NULL values (it is a combination of both a UNIQUE constraint and a NOT NULL constraint).

A table can have only ONE PRIMARY KEY constraint. The primary key can either be a single column, or a combination of columns.

Tip

The primary key is the target for FOREIGN KEY constraints in other tables (which enforces referential integrity between data in two tables).

PRIMARY KEY on CREATE TABLE

The following SQL creates a PRIMARY KEY on the "ID" column upon creation of the "Persons" table:

CREATE TABLE Persons
(
 ID int PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);

PRIMARY KEY on Multiple Columns

To define an un-named PRIMARY KEY constraint on multiple columns, use the following SQL syntax:

CREATE TABLE Persons
(
 ID int,
LastName varchar(255),
FirstName varchar(255),
Age int,
 PRIMARY KEY (ID, LastName)
);

Note

In the example above, the PRIMARY KEY value is made up of two columns (ID + LastName).

To define a named PRIMARY KEY constraint on multiple columns, use the following SQL syntax:

CREATE TABLE Persons
(
 ID int,
LastName varchar(255),
FirstName varchar(255),
Age int,
CONSTRAINT PK_Person PRIMARY KEY (ID, LastName)
);

Note

In the example above, the PRIMARY KEY is named "PK_Person", and the value is made up of two columns (ID + LastName).

PRIMARY KEY on ALTER TABLE

To create a PRIMARY KEY constraint on the "ID" column when the table already has been created, use the following SQL:

ALTER TABLE Persons
ADD PRIMARY KEY (ID);

PRIMARY KEY on Multiple Columns

To define a named PRIMARY KEY constraint on multiple columns, use the following SQL syntax:

ALTER TABLE Persons
ADD CONSTRAINT PK_Person PRIMARY KEY (ID, LastName);

Note

When using ALTER TABLE to add a primary key, the primary key column(s) must have been declared with NOT NULL upon creation of the table.

Drop a PRIMARY KEY Constraint

To drop a PRIMARY KEY constraint, use the following SQL:

SQL Server / Oracle / MS Access:

ALTER TABLE Persons
DROP CONSTRAINT PK_Person;

MySQL

ALTER TABLE Persons
DROP PRIMARY KEY;

Previous

SQL UNIQUE Constraint

Next

SQL FOREIGN KEY Constraint

This chapter

Overview
21

Lessons

50m

Read time

1. SQL CREATE DATABASE Statement2. SQL DROP DATABASE Statement3. SQL BACKUP DATABASE Statement4. SQL CREATE TABLE Statement5. SQL DROP TABLE Statement6. SQL ALTER TABLE Statement7. SQL Constraints8. SQL NOT NULL Constraint9. SQL UNIQUE Constraint10. SQL PRIMARY KEY Constraint11. SQL FOREIGN KEY Constraint12. SQL CHECK Constraint13. SQL DEFAULT Constraint14. SQL CREATE INDEX Statement15. SQL AUTO INCREMENT Field16. SQL Working With Dates17. SQL Views18. SQL Injection19. SQL Parameters20. SQL Prepared Statements21. SQL Hosting

On this page

PRIMARY KEY on CREATE TABLEPRIMARY KEY on Multiple ColumnsPRIMARY KEY on ALTER TABLEPRIMARY KEY on Multiple ColumnsDrop a PRIMARY KEY ConstraintSQL Server / Oracle / MS Access: