Tutorial MySQL ini menjelaskan cara menggunakan UNIQUE CONSTRAINTS di MySQL dengan sintaks dan contoh.
Apa itu UNIQUE CONSTRAINTS di MySQL?UNIQUE CONSTRAINTS atau kendala unik adalah bidang tunggal atau kombinasi bidang yang secara unik mendefinisikan catatan. Beberapa bidang dapat berisi nilai nol selama kombinasi nilai unik.
Apa perbedaan antara UNIQUE CONSTRAINTS dan PRIMARY KEY?Tak satu pun dari bidang yang merupakan bagian dari kunci primer dapat berisi nilai nol. | Beberapa bidang yang merupakan bagian dari kendala unik dapat berisi nilai nol selama kombinasi nilai unik. |
Syntax untuk membuat unique Constraints menggunakan statement CREATE TABLE di MySQL adalah:
CREATE TABLE table_name ( column1 datatype[NULL|NOTNULL], column2 datatype[NULL |NOTNULL], ... CONSTRAINT constraint_name UNIQUE(uc_col1,uc_col2,... uc_col_n) ); |
Syntax untuk membuat batasan unik menggunakan pernyataan ALTER TABLE di MySQL adalah:
ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE(column1,column2,...column_n); |
Syntax untuk menghapus Unique constraints di MySQL adalah:
ALTER TABLE table_name DROP INDEX constraint_name; |
constraint_nameNama unique constraint yang mau dihapus.Contoh – Membuat UNIQUE CONSTRAINTS di MySQL
Mari kita lihat contoh bagaimana membuat unique constraints di MySQL menggunakan pernyataan CREATE TABLE.
CREATE TABLE contacts (contact_id INT(11)PRIMARY KEY AUTO_INCREMENT, reference_number INT(11)NOTNULL, last_name VARCHAR(30)NOTNULL, first_name VARCHAR(25), birthday DATE, CONSTRAINT contacts_unique UNIQUE (contact_id) ); |
Dalam contoh ini, kami telah membuat batasan unik pada tabel kontak yang disebut contacts_unique. Ini hanya terdiri dari satu bidang – field reference_number.
Kami juga dapat membuat unique constraint dengan lebih dari satu bidang seperti pada contoh di bawah ini:
CREATE TABLE contacts (contact_id INT(11)PRIMARY KEY AUTO_INCREMENT, reference_number INT(11)NOTNULL, last_name VARCHAR(30)NOTNULL, first_name VARCHAR(25), birthday DATE, CONSTRAINT contacts_unique UNIQUE (last_name,first_name) ); |