Bagaimana cara menghapus kunci asing di meja kerja mysql?

Batasan Kunci Asing membantu Anda mempertahankan integritas referensial dalam database, dan menautkan tabel terkait untuk kueri yang lebih mudah. Berikut cara menghapus batasan kunci asing menggunakan perintah MySQL DROP FOREIGN KEY

 

Cara DROP Batasan FOREIGN KEY di MySQL

Berikut adalah langkah-langkah untuk menghapus batasan kunci asing di MySQL

Berikut sintaks untuk pernyataan DROP FOREIGN KEY

ALTER TABLE table_name
DROP FOREIGN KEY constraint_name;

Dalam kueri kunci asing lepas di atas, tentukan nama_tabel dari mana Anda ingin menghapus kunci asing, sebagai ganti nama_tabel. Tentukan nama kendala sebagai ganti nama_batasan

Kunci asing digunakan untuk menghubungkan satu atau lebih dari satu tabel secara bersamaan. Ini juga dikenal sebagai kunci referensi. Kunci asing cocok dengan bidang kunci utama dari tabel lain. Ini berarti bidang kunci asing dalam satu tabel mengacu pada bidang kunci utama dari tabel lainnya. Ini mengidentifikasi setiap baris dari tabel lain secara unik yang mempertahankan integritas referensial di MySQL

Kunci asing memungkinkan untuk membuat hubungan induk-anak dengan tabel. Dalam hubungan ini, tabel induk menampung nilai kolom awal, dan nilai kolom tabel anak mereferensikan nilai kolom induk. MySQL memungkinkan kita untuk menentukan batasan kunci asing pada tabel anak

MySQL mendefinisikan kunci asing dalam dua cara

  1. Menggunakan Pernyataan CREATE TABLE
  2. Menggunakan Pernyataan ALTER TABLE

Sintaksis

Berikut ini adalah sintaks dasar yang digunakan untuk mendefinisikan kunci asing menggunakan pernyataan CREATE TABLE OR ALTER TABLE di MySQL

Dalam sintaks di atas, kita dapat melihat parameter berikut

constraint_name. Ini menentukan nama batasan kunci asing. Jika kami belum memberikan nama batasan, MySQL akan membuat namanya secara otomatis

nama_kolom. Ini adalah nama kolom yang akan kita jadikan kunci asing

parent_tbl_name. Ini menentukan nama tabel induk diikuti dengan nama kolom yang mereferensikan kolom kunci asing

Referensi_option. Ini digunakan untuk memastikan bagaimana kunci asing mempertahankan integritas referensial menggunakan klausa ON DELETE dan ON UPDATE antara tabel induk dan anak

MySQL berisi lima pilihan referensi yang berbeda, yang diberikan di bawah ini

RIAM. Ini digunakan ketika kita menghapus atau memperbarui baris apa pun dari tabel induk, nilai baris yang cocok di tabel anak akan dihapus atau diperbarui secara otomatis

SET NULL. Ini digunakan saat kita menghapus atau memperbarui baris apa pun dari tabel induk, nilai kolom kunci asing di tabel anak disetel ke NULL

MEMBATASI. Ini digunakan ketika kita menghapus atau memperbarui baris apa pun dari tabel induk yang memiliki baris yang cocok di tabel referensi (anak), MySQL tidak mengizinkan untuk menghapus atau memperbarui baris di tabel induk

TIDAK ADA TINDAKAN. Ini mirip dengan MEMBATASI. Tetapi ada satu perbedaan yang memeriksa integritas referensial setelah mencoba memodifikasi tabel

SET STANDAR. Parser MySQL mengenali tindakan ini. Namun, tabel InnoDB dan NDB menolak tindakan ini

CATATAN. MySQL terutama memberikan dukungan penuh untuk tindakan CASCADE, RESTRICT, dan SET NULL. Jika kita belum menentukan klausa ON DELETE dan ON UPDATE, MySQL mengambil tindakan default RESTRICT

Contoh Kunci Asing

Mari kita pahami cara kerja kunci asing di MySQL. Jadi pertama, kita akan membuat database bernama "mysqltestdb" dan mulai menggunakannya dengan perintah di bawah ini

Selanjutnya, kita perlu membuat dua tabel bernama "pelanggan" dan "kontak" menggunakan pernyataan di bawah ini

Meja. pelanggan

Meja. kontak

Verifikasi Struktur Tabel

Di sini, kita akan melihat bagaimana struktur database kita menggunakan query berikut

Kita akan mendapatkan struktur seperti di bawah ini

Bagaimana cara menghapus kunci asing di meja kerja mysql?

Pada keluaran di atas, kita dapat melihat bahwa PRI di kolom kunci tabel pelanggan menyatakan bahwa bidang ini adalah nilai indeks utama. Selanjutnya, MUL di kolom kunci dari nilai kontak memberi tahu bahwa kolom Customer_Id dapat menyimpan banyak baris dengan nilai yang sama

Masukkan Data ke Tabel

Sekarang, kita harus memasukkan record ke dalam kedua tabel. Jalankan pernyataan ini untuk memasukkan data ke dalam tabel pelanggan

Setelah penyisipan, jalankan perintah SELECT TABLE untuk memeriksa data tabel pelanggan seperti di bawah ini

Bagaimana cara menghapus kunci asing di meja kerja mysql?

Jalankan pernyataan sisipkan di bawah ini untuk menambahkan data ke kontak tabel

Tabel kontak kami terlihat seperti di bawah ini

Bagaimana cara menghapus kunci asing di meja kerja mysql?

Sekarang, mari kita lihat bagaimana kunci asing di MySQL menjaga integritas data

Jadi di sini, kita akan menghapus data referensial yang menghapus record dari kedua tabel. Kami telah mendefinisikan kunci asing di tabel kontak sebagai

Artinya jika kita menghapus catatan pelanggan dari tabel pelanggan, maka catatan terkait di tabel kontak juga harus dihapus. Dan ON UPDATE CASCADE akan memperbarui secara otomatis pada tabel induk ke bidang yang direferensikan pada tabel anak (Ini adalah Customer_Id)

Jalankan pernyataan ini yang menghapus catatan dari tabel yang bernama JOHN

Sekali lagi, jika kita melihat tabel kita, kita dapat melihat bahwa kedua tabel telah diubah. Ini berarti bidang dengan nama JOHN akan dihapus seluruhnya dari kedua tabel

Bagaimana cara menghapus kunci asing di meja kerja mysql?

Sekarang, uji ON UPDATE CASCADE. Di sini, kami akan memperbarui Customer_Id Mary di tabel kontak sebagai

Sekali lagi, jika kita melihat tabel kita, kita dapat melihat bahwa kedua tabel diubah dengan Customer_Id of Mary=3

Bagaimana cara menghapus kunci asing di meja kerja mysql?

Contoh Kunci Asing menggunakan tindakan SET NULL

Di sini, kita akan memahami bagaimana aksi SET NULL bekerja dengan kunci asing. Pertama, kita harus membuat dua tabel bernama Orang dan Kontak, seperti yang ditunjukkan di bawah ini

Meja. Orang

Meja. Pelanggan

Selanjutnya, kita perlu memasukkan data ke dalam kedua tabel menggunakan pernyataan berikut

Sekarang, perbarui ID tabel "Orang".

Terakhir, verifikasi pembaruan menggunakan pernyataan SELECT yang diberikan di bawah ini

Bagaimana cara menghapus kunci asing di meja kerja mysql?

Jika kita melihat tabel kita, kita dapat melihat bahwa kedua tabel telah diubah. Baris dengan Person_Id=3 di tabel Kontak secara otomatis diatur ke NULL karena tindakan ON UPDATE SET NULL

Cara DROP Kunci Asing

MySQL mengizinkan pernyataan ALTER TABLE untuk menghapus kunci asing yang ada dari tabel. Sintaks berikut digunakan untuk menjatuhkan kunci asing

Di sini, nama_tabel adalah nama tabel tempat kita akan menghapus kunci asing. Constraint_name adalah nama kunci asing yang ditambahkan selama pembuatan tabel

Jika kita belum mengetahui nama dari foreign key yang ada ke dalam tabel, jalankan perintah berikut

Ini akan memberikan output seperti di bawah ini di mana kita dapat melihat bahwa kontak tabel memiliki satu kunci asing bernama fk_customer yang ditunjukkan dalam kotak merah

Bagaimana cara menghapus kunci asing di meja kerja mysql?

Sekarang, untuk menghapus batasan kunci asing ini dari tabel kontak, jalankan pernyataan seperti di bawah ini

Kami dapat memverifikasi apakah batasan kunci asing dihapus atau tidak, gunakan pernyataan SHOW CREATE TABLE. Ini akan memberikan output seperti di bawah ini dimana kita dapat melihat bahwa kunci asing tidak lagi tersedia di kontak tabel

Bagaimana cara menghapus kunci asing di meja kerja mysql?

Tentukan Kunci Asing Menggunakan Pernyataan ALTER TABLE

Pernyataan ini memungkinkan kita untuk melakukan modifikasi pada tabel yang ada. Terkadang ada kebutuhan untuk menambahkan kunci asing ke kolom tabel yang sudah ada;

Sintaksis

Berikut adalah sintaks pernyataan ALTER TABLE untuk menambahkan kunci asing di tabel yang ada

Saat kami menambahkan kunci asing menggunakan pernyataan ALTER TABLE, disarankan untuk terlebih dahulu membuat indeks pada kolom, yang direferensikan oleh kunci asing

Contoh

Pernyataan berikut membuat dua tabel, "Orang" dan "Kontak", tanpa memiliki kolom kunci asing ke dalam definisi tabel

Meja. Orang

Meja. Kontak

Setelah membuat tabel, jika kita ingin menambahkan kunci asing ke tabel yang sudah ada, kita perlu mengeksekusi pernyataan ALTER TABLE seperti di bawah ini

Pemeriksaan Kunci Asing

MySQL memiliki variabel khusus foreign_key_cheks untuk mengontrol pemeriksaan kunci asing ke dalam tabel. Secara default, diaktifkan untuk menegakkan integritas referensial selama operasi normal pada tabel. Variabel ini bersifat dinamis sehingga mendukung cakupan global dan sesi keduanya

Bagaimana cara menghapus kunci asing di MySQL?

Menghilangkan Batasan Kunci Asing . ALTER TABLE tbl_name DROP FOREIGN KEY fk_symbol; Jika klausa FOREIGN KEY menentukan nama CONSTRAINT saat Anda membuat batasan, Anda dapat merujuk ke nama tersebut untuk menghapus .

Bagaimana saya bisa menghapus kunci asing?

Untuk menghapus batasan kunci asing .
Di Object Explorer, perluas tabel dengan batasan lalu perluas Kunci
Klik kanan pembatas lalu klik Hapus
Di kotak dialog Hapus Objek, klik OK

Bagaimana cara menonaktifkan batasan kunci asing di meja kerja MySQL?

Anda dapat menonaktifkan pemeriksaan kunci asing di MySQL dengan mengatur variabel sistem foreign_key_checks ke 0 . Namun, perlu diketahui, setelah Anda mengaktifkan pemeriksaan kunci asing, MySQL tidak akan memvalidasi ulang data yang ada yang Anda tambahkan setelah menonaktifkan pemeriksaan kunci asing.

Bagaimana cara menghapus hubungan di meja kerja MySQL?

Klik tombol Hapus di bilah alat untuk menghapus hubungan yang dipilih. Sebelum MySQL/InnoDB-4. 0. .
Klik ikon "Hubungan/Kunci Asing", atau
Klik kanan pada tabel (di Object Browser) dan pilih opsi menu "Relationships/Foreign Keys", atau
Tekan tombol F10