Is the proper way to use the UNIQUE KEY in my MySQL table?
MySQL data.
id pid aid
1 2 3
2 3 2
3 3 4
MySQL table.
CREATE TABLE ab (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
pid INT UNSIGNED NOT NULL DEFAULT 0,
aid INT UNSIGNED NOT NULL DEFAULT 0,
PRIMARY KEY (id),
UNIQUE KEY (pid, aid)
);
The unique index you have created is a valid index. It creates an index which allows duplicate values in
pidand also inaidbut does not allow duplicates of any pair(pid, aid). For example, this insert would fail if your table already contains the data from your example because it conflicts with the second row: