Foreign Key membantu membangun hubungan basis data dan menjaga integritas referensial. Mereka membantu menautkan satu atau lebih kolom dalam satu tabel ke tabel lain. Berikut cara menambahkan kunci asing di MySQL Show
Cara Menambahkan Kunci Asing di MySQLBerikut adalah langkah-langkah untuk menambahkan kunci asing di MySQL. Anda dapat menambahkan batasan kunci asing menggunakan pernyataan CREATE TABLE atau ALTER TABLE di SQL Berikut sintaks untuk membuat kunci asing di MySQL Menggunakan ALTER TABLE ALTER TABLE table_name ADD CONSTRAINT constraint_name FOREIGN KEY (foreign_key_name,...) REFERENCES parent_table(column_name,...); Dalam kueri di atas, nama_tabel adalah tabel tempat Anda ingin menambahkan kunci asing. constraint_name adalah nama batasan kunci asing. foreign_key_name, … adalah daftar kolom kunci asing parent_table adalah tabel yang menjadi referensi kunci_asing Anda, diikuti dengan daftar nama kolom dalam tabel tersebut
Bonus Baca. Kolom Tabel Alter MySQL
Menggunakan BUAT TABEL CREATE TABLE table_name( column_name column_description, CONSTRAINT constraint_name FOREIGN KEY (foreign_key_name,...) REFERENCES parent_table(column_name,...) )_ Dalam kueri di atas, nama_tabel adalah tabel tempat Anda ingin menambahkan kunci asing. constraint_name adalah nama batasan kunci asing. foreign_key_name, … adalah daftar kolom kunci asing parent_table adalah tabel yang menjadi referensi kunci_asing Anda, diikuti dengan daftar nama kolom dalam tabel tersebut Harap dicatat, di ALTER TABLE Anda perlu menggunakan ADD CONSTRAINT sementara di CREATE TABLE Anda hanya perlu menggunakan kata kunci CONSTRAINT
Bonus Baca. Batasan MySQL DROP FOREIGN KEY
Contoh MySQL ADD FOREIGN KEYKatakanlah Anda memiliki tabel berikut Mari buat 2 tabel (kategori dan pesanan) dan tambahkan batasan kunci asing ke pesanan, merujuk kolom id di tabel kategori Kami ingin membuat tabel bernama Solusi 1 (tabel baru)CREATE TABLE student ( id INT PRIMARY KEY, first_name VARCHAR(100) NOT NULL, last_name VARCHAR(100) NOT NULL, city_id INT FOREIGN KEY REFERENCES city(id) ); DiskusiUntuk membuat tabel baru yang berisi kolom kunci asing yang mereferensikan tabel lain, gunakan kata kunci Dalam contoh kami, kami membuat tabel CREATE TABLE student ( id INT PRIMARY KEY, first_name VARCHAR(100) NOT NULL, last_name VARCHAR(100) NOT NULL, city_id INT, FOREIGN KEY (city_id) REFERENCES city(id) );1. Kami mencantumkan nama kolom dan memasukkan tipe data masing-masing dalam tanda kurung. Kolom CREATE TABLE student ( id INT PRIMARY KEY, first_name VARCHAR(100) NOT NULL, last_name VARCHAR(100) NOT NULL, city_id INT, FOREIGN KEY (city_id) REFERENCES city(id) );_2 adalah kunci asing dalam tabel ini dan menunjukkan nilai ID yang disimpan di kolom id dalam tabel city . Kami menulis FOREIGN KEY REFERENCES di akhir definisi kolom ini dan mengikutinya dengan tabel dan kolom yang direferensikan. CREATE TABLE student ( id INT PRIMARY KEY, first_name VARCHAR(100) NOT NULL, last_name VARCHAR(100) NOT NULL, city_id INT, FOREIGN KEY (city_id) REFERENCES city(id) );6 Ingatlah bahwa Anda dapat membuat lebih dari satu kunci asing untuk sebuah tabel Solusi 2 (tabel baru)CREATE TABLE student ( id INT PRIMARY KEY, first_name VARCHAR(100) NOT NULL, last_name VARCHAR(100) NOT NULL, city_id INT, FOREIGN KEY (city_id) REFERENCES city(id) ); DiskusiCara lain untuk mendefinisikan kunci asing selama pembuatan tabel adalah dengan menggunakan klausa CREATE TABLE student ( id INT PRIMARY KEY, first_name VARCHAR(100) NOT NULL, last_name VARCHAR(100) NOT NULL, city_id INT, FOREIGN KEY (city_id) REFERENCES city(id) );8, kami menetapkan kolom kunci asing. Berikutnya adalah klausa CREATE TABLE student ( id INT PRIMARY KEY, first_name VARCHAR(100) NOT NULL, last_name VARCHAR(100) NOT NULL, city_id INT, FOREIGN KEY (city_id) REFERENCES city(id) );_9 bersama dengan nama tabel dan kolom yang dirujuk Anda dapat membuat kunci asing di lebih dari satu kolom, seperti yang ditunjukkan di bawah ini Solusi 3 (tabel baru)CREATE TABLE student ( id INT PRIMARY KEY, first_name VARCHAR(100) NOT NULL, last_name VARCHAR(100) NOT NULL, score_id INT, subject_id INT, CONSTRAINT fk_student_score_subject_id FOREIGN KEY (subject_id, score_id) REFERENCES score_subject(subject_id, score_id) );_ Dalam contoh ini, kendala CREATE TABLE student ( id INT PRIMARY KEY, first_name VARCHAR(100) NOT NULL, last_name VARCHAR(100) NOT NULL, score_id INT, subject_id INT, CONSTRAINT fk_student_score_subject_id FOREIGN KEY (subject_id, score_id) REFERENCES score_subject(subject_id, score_id) );_0 adalah kunci asing yang terdiri dari dua kolom. CREATE TABLE student ( id INT PRIMARY KEY, first_name VARCHAR(100) NOT NULL, last_name VARCHAR(100) NOT NULL, score_id INT, subject_id INT, CONSTRAINT fk_student_score_subject_id FOREIGN KEY (subject_id, score_id) REFERENCES score_subject(subject_id, score_id) );1 dan CREATE TABLE student ( id INT PRIMARY KEY, first_name VARCHAR(100) NOT NULL, last_name VARCHAR(100) NOT NULL, score_id INT, subject_id INT, CONSTRAINT fk_student_score_subject_id FOREIGN KEY (subject_id, score_id) REFERENCES score_subject(subject_id, score_id) );2. Dua kolom kunci asing ini mengacu pada dua kolom dalam tabel CREATE TABLE student ( id INT PRIMARY KEY, first_name VARCHAR(100) NOT NULL, last_name VARCHAR(100) NOT NULL, score_id INT, subject_id INT, CONSTRAINT fk_student_score_subject_id FOREIGN KEY (subject_id, score_id) REFERENCES score_subject(subject_id, score_id) );3 – CREATE TABLE student ( id INT PRIMARY KEY, first_name VARCHAR(100) NOT NULL, last_name VARCHAR(100) NOT NULL, score_id INT, subject_id INT, CONSTRAINT fk_student_score_subject_id FOREIGN KEY (subject_id, score_id) REFERENCES score_subject(subject_id, score_id) );1 dan CREATE TABLE student ( id INT PRIMARY KEY, first_name VARCHAR(100) NOT NULL, last_name VARCHAR(100) NOT NULL, score_id INT, subject_id INT, CONSTRAINT fk_student_score_subject_id FOREIGN KEY (subject_id, score_id) REFERENCES score_subject(subject_id, score_id) );2 Ini contoh lainnya Solusi 4 (tabel baru)CREATE TABLE student ( id INT PRIMARY KEY, first_name VARCHAR(100) NOT NULL, last_name VARCHAR(100) NOT NULL, city_id INT, CONSTRAINT fk_student_city_id FOREIGN KEY (city_id) REFERENCES city(id) ); DiskusiDalam kode ini, kami kembali memiliki klausa CREATE TABLE student ( id INT PRIMARY KEY, first_name VARCHAR(100) NOT NULL, last_name VARCHAR(100) NOT NULL, score_id INT, subject_id INT, CONSTRAINT fk_student_score_subject_id FOREIGN KEY (subject_id, score_id) REFERENCES score_subject(subject_id, score_id) );_6 dengan nama kendala ini. Gunakan nama yang mudah dibaca dan dipahami. Dalam contoh kami, kami menggunakan nama CREATE TABLE student ( id INT PRIMARY KEY, first_name VARCHAR(100) NOT NULL, last_name VARCHAR(100) NOT NULL, score_id INT, subject_id INT, CONSTRAINT fk_student_score_subject_id FOREIGN KEY (subject_id, score_id) REFERENCES score_subject(subject_id, score_id) );_7, yang menunjukkan tabel dan kolom yang relevan. Selanjutnya kita tulis CREATE TABLE student ( id INT PRIMARY KEY, first_name VARCHAR(100) NOT NULL, last_name VARCHAR(100) NOT NULL, city_id INT, FOREIGN KEY (city_id) REFERENCES city(id) );8 dan tambahkan (dalam tanda kurung) nama kolom yang menjadi foreign key. Kemudian kita memiliki klausa CREATE TABLE student ( id INT PRIMARY KEY, first_name VARCHAR(100) NOT NULL, last_name VARCHAR(100) NOT NULL, city_id INT, FOREIGN KEY (city_id) REFERENCES city(id) );_9 diikuti dengan nama tabel dan kolom yang direferensikan (di sini. id )Solusi 5 (tabel yang ada)ALTER TABLE student ADD FOREIGN KEY (city_id) REFERENCES city(id); DiskusiDimungkinkan juga untuk menambahkan kunci asing baru ke tabel yang sudah ada. Di sini, tabel diubah menggunakan klausa ________16______1. Nama tabel (dalam contoh kita, CREATE TABLE student ( id INT PRIMARY KEY, first_name VARCHAR(100) NOT NULL, last_name VARCHAR(100) NOT NULL, city_id INT, CONSTRAINT fk_student_city_id FOREIGN KEY (city_id) REFERENCES city(id) );1. Selanjutnya klausa CREATE TABLE student ( id INT PRIMARY KEY, first_name VARCHAR(100) NOT NULL, last_name VARCHAR(100) NOT NULL, city_id INT, CONSTRAINT fk_student_city_id FOREIGN KEY (city_id) REFERENCES city(id) );_4 diikuti dengan nama kolom yang akan dijadikan foreign key. Kemudian kita memiliki CREATE TABLE student ( id INT PRIMARY KEY, first_name VARCHAR(100) NOT NULL, last_name VARCHAR(100) NOT NULL, city_id INT, CONSTRAINT fk_student_city_id FOREIGN KEY (city_id) REFERENCES city(id) );_5 dengan nama tabel yang direferensikan dan nama kolom primary key dalam tanda kurung Perhatikan bahwa tabel yang Anda modifikasi harus ada sebelum perintah ini dijalankan Solusi 6 (tabel yang ada, batasan kunci asing)ALTER TABLE student ADD CONSTRAINT fk_student_city_id FOREIGN KEY (city_id) REFERENCES city(id) DiskusiGunakan kueri seperti ini jika Anda ingin menamai kolom kunci asing sebagai batasan untuk tabel yang sudah ada. Di sini, batasan kunci asing diberi nama CREATE TABLE student ( id INT PRIMARY KEY, first_name VARCHAR(100) NOT NULL, last_name VARCHAR(100) NOT NULL, score_id INT, subject_id INT, CONSTRAINT fk_student_score_subject_id FOREIGN KEY (subject_id, score_id) REFERENCES score_subject(subject_id, score_id) );7. Jika Anda tidak menentukan nama kendala, database akan menghasilkan nama kendala default (yang akan bervariasi menurut basis data) Bagaimana cara menambahkan kunci asing ke tabel yang ada di MySQL?Berikut sintaks pernyataan ALTER TABLE untuk menambahkan foreign key pada tabel yang sudah ada. . ALTER TABLE table_name TAMBAHKAN [KENDALA [simbol]] KUNCI ASING [nama_indeks] (nama_kolom,. ) REFERENSI nama_tabel (nama_kolom,. ) PADA DELETE referenceOption ON UPDATE referenceOption Bagaimana cara menambahkan kolom kunci asing ke tabel yang sudah ada?Untuk membuat tabel baru yang berisi kolom kunci asing yang mereferensikan tabel lain, gunakan kata kunci FOREIGN KEY REFERENCES di akhir definisi kolom tersebut. Follow that with the name of the referenced table and the name of the referenced column in parentheses.
Bagaimana cara memasukkan kunci asing dalam SQL?Jika Anda ingin menambahkan KUNCI ASING ke kolom ke dalam tabel SQL, Anda harus mengikuti langkah-langkah di bawah ini dalam urutan yang diberikan. . Buat database di sistem Buat dua tabel dalam database yang sama Lihat struktur Tabel sebelum penambahan kunci asing Tambahkan kunci asing ke tabel Lihat struktur tabel Di mana Anda meletakkan kunci asing?Aturan Praktis yang Disederhanakan adalah meletakkan kunci asing pada tabel anak (jika setiap orang tua dapat memiliki banyak anak)*. |