Cara Membuat Foreign Key Di MySQL
Ok.. temen-temen. Pada tutorial kali ini, kita akan belajar tentang Cara Membuat Foreign Key Di MySQL. mungkin temen-temen masih bingun apa yang dimaksud dengan foreigen key .. membahas mengenai foreigen key, kerap sekali dihubungkan dengan relasi lo, , Supaya gak bingung dengan foreigen key itu, yuk kita simak artike ini yang menjelaskan apa itu foreigen key, sintaks dasar dari foreign key, cara membuat foreigen key, cara menghapus foreigen key, berikut penjelasannya ya..
Apa Yang dimaksud dengan Foreign Key?
Foreign key merupakan salah satu jenis constraint yang digunakan untuk merelasikan antar dua tabel atau lebih. Foreign key digunakan pada tabel kedua (detail) yang mereferensi ke tabel utama (master) yang mempunyai constraint primary key.
Untuk Lebih jelasnya lihat gambar dibawah ini : (note gambar dikutip dari google)
Pada gambar diatas, dapat kilta lihat kolom Cust_ID pada tabel Orders berperan sebagai foreign key yang mereferensi ke tabel Customers pada kolom ID.
Sintak Dasar Foreign Key
Di bawah ini adalah sintak dasar untuk mendefinisikan foreign key pada sebuah tabel di MySQL:
CONSTRAINT constraint_name FOREIGN KEY foreign_key_name (columns) REFERENCES parent_table(columns)
Penjelasan dari sintak:
- CONSTRAINT adalah perintah untuk membuat sebuah constraint.
- constraint_name adalah nama yang akan Anda berikan untuk membuat foreign key
- FOREIGN KEY adalah perintah untuk mendefinisikan foreign key
- foreign_key_name (columns) adalah nama yang digunakan untuk constraint foreign key dan kolom yang akan dijadikan foreign key.
- REFERENCES parent_table(columns) adalah perintah untuk mereferensikan ke tabel utama (primary key)
Cara Membuat Foreign Key
Untuk membuat sebuah constraint foreign key, Ada 2 cara yang Anda bisa gunakan yaitu:- Membuat Contraint Foreign Key Menggunakan Create Table
Anda dapat membuat constraint foreign key sewaktu Anda membuat sebuah tabel. Untuk lebih jelasnya, perhatikan contoh di bawah ini:
CREATE TABLE categories( category_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, category_name VARCHAR(50) NOT NULL, category_description VARCHAR(50) ) ENGINE=InnoDB; CREATE TABLE products( product_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, product_name VARCHAR(50) NOT NULL, price DECIMAL, category_id INT NOT NULL, FOREIGN KEY fk_category(category_id) REFERENCES categories(category_id) )ENGINE=InnoDB;
- Membuat Constraint Foreign Key Menggunakan Alter Table
Anda juga dapat menambahkan constraint foreign key pada sebuah tabel yang sudah ada. Perhatikan contoh di bawah ini:
CREATE TABLE vendors( vendor_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, vendor_name varchar(50) )ENGINE=InnoDB; ALTER TABLE products ADD COLUMN vendor_id INT NOT NULL;
Untuk menambahkan foreign key pada tabel products, Anda dapat menjalakan perintah ALTER TABLE di bawah ini:
ALTER TABLE products ADD FOREIGN KEY fk_vendor(vendor_id) REFERENCES vendors(vendor_id);
Menghapus Foreign Key
Untuk menghapus constraint foreign key pada sebuah tabel, Anda dapat mengggunakan sintak di bawah ini:
ALTER TABLE table_name
DROP FOREIGN KEY constraint_name;
Sebagai contoh, asumsikan Anda ingin menghasus constraint foregin key pada tabel products, Anda dapat menjalankan perintah di bawah ini:
ALTER TABLE products
DROP FOREIGN KEY fk_vendor;