
CREATE TABLE `student` (
`id` int(2) NOT NULL,
`name` varchar(50) CHARACTER SET utf8 NOT NULL DEFAULT '',
`class` varchar(10) CHARACTER SET utf8 NOT NULL DEFAULT '',
`mark` int(3) NOT NULL DEFAULT '0',
`gender` varchar(6) CHARACTER SET utf8 NOT NULL DEFAULT 'male',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
Adding Primary Key to an existing table for single column.
ALTER TABLE `student` ADD PRIMARY KEY ( `id` ) ;
Using two columns
ALTER TABLE `student` ADD PRIMARY KEY ( `id` , `name` ) ;
ALTER TABLE student DROP PRIMARY KEY
| Detail | Primary Key | Unique Key |
|---|---|---|
| Null value | Not allowed | Allowed |
| Number of Constrints | One only | One or more |
| Index | Clustered Idex | Non-Clustered Index |
SELECT COLUMN_NAME, CONSTRAINT_NAME, REFERENCED_COLUMN_NAME, REFERENCED_TABLE_NAME
FROM information_schema.KEY_COLUMN_USAGE
WHERE TABLE_NAME = 'student'
Using SHOW
SHOW CREATE TABLE student
INSERT INTO `my_tutorial`.`student`
(`id` ,`name` ,`class` ,`mark` ,`gender`)
VALUES ('10', 'test name', 'Four', '55', 'male'),
('36', 'test name 2', 'Four', '57', 'male')
We can use IGNORE to ask MySQL to ignore the error for the line id=10 and continue adding the next line. Here one record with id=36 will be added.
INSERT IGNORE INTO `my_tutorial`.`student`
(`id` ,`name` ,`class` ,`mark` ,`gender`)
VALUES ('10', 'test name', 'Four', '55', 'male'),
('36', 'test name 2', 'Four', '57', 'male')
The error we got depends on setting of STRICT mode.

Author & Instructor at plus2net
I write and maintain practical tutorials on Python, PHP, SQL, JavaScript, HTML, jQuery, and web development at plus2net. The tutorials focus on clear explanations, working examples, and code that readers can test and adapt while learning.