This tutorial explains how to create and drop a primary key in MySQL with syntax and examples.
In MySQL, a primary key is a single field or combination of fields that uniquely defines a record. None of the fields that are part of the primary key can contain a NULL value. A table can have only one primary key.
You can create a primary key in MySQL with the CREATE TABLE statement.
The syntax to create a primary key using the CREATE TABLE statement in MySQL is:
CREATE TABLE table_name
(
column1 column_definition,
column2 column_definition,
...
CONSTRAINT [constraint_name]
PRIMARY KEY [ USING BTREE | HASH ] (column1, column2, ... column_n)
);
The name of the table that you wish to create.
The columns that you wish to create in the table. See the MySQL CREATE TABLE statement for more detailed CREATE TABLE syntax as this is an over-simplification to demonstrate how to create a primary Key.
The name of the primary key.
The columns that make up the primary key.
Let's look at an example of how to create a primary key using the CREATE TABLE statement in MySQL.
CREATE TABLE contacts
( contact_id INT(11) NOT NULL AUTO_INCREMENT,
last_name VARCHAR(30) NOT NULL,
first_name VARCHAR(25),
birthday DATE,
CONSTRAINT contacts_pk PRIMARY KEY (contact_id)
);
In this example, we've created a primary key on the contacts table called contacts_pk. It consists of only one column - the contact_id column.
We could also create a primary key with more than one field as in the example below:
CREATE TABLE contacts
( last_name VARCHAR(30) NOT NULL,
first_name VARCHAR(25) NOT NULL,
birthday DATE,
CONSTRAINT contacts_pk PRIMARY KEY (last_name, first_name)
);
This example creates a primary key called contacts_pk that is made up of a combination of the last_name and first_name columns. So each combination of last_name and first_name must be unique in the contacts table.
You can create a primary key in MySQL with the ALTER TABLE statement.
The syntax to create a primary key using the ALTER TABLE statement in MySQL is:
ALTER TABLE table_name
ADD CONSTRAINT [ constraint_name ]
PRIMARY KEY [ USING BTREE | HASH ] (column1, column2, ... column_n)
The name of the table to modify.
The name of the primary key.
The columns that make up the primary key.
Let's look at an example of how to create a primary key using the ALTER TABLE statement in MySQL.
ALTER TABLE contacts
ADD CONSTRAINT contacts_pk
PRIMARY KEY (contact_id);
In this example, we've created a primary key on the existing contacts table called contacts_pk. It consists of the contact_id column.
We could also create a primary key with more than one field as in the example below:
ALTER TABLE contacts
ADD CONSTRAINT contacts_pk
PRIMARY KEY (last_name, first_name);
This example we've created a primary key called contacts_pk that is made up of a combination of the last_name and first_name columns.
You can drop a primary key in MySQL using the ALTER TABLE statement.
The syntax to drop a primary key in MySQL is:
ALTER TABLE table_name
DROP PRIMARY KEY;
The name of the table to modify.
Let's look at an example of how to drop a primary key using the ALTER TABLE statement in MySQL.
ALTER TABLE contacts
DROP PRIMARY KEY;
In this example, we've dropped the primary key on the contacts table. We do not need to specify the name of the primary key as there can only be one on a table.