MySQL MariaDB

MySQL DELETE CASCADE

MySQL DELETE CASCADE
Di MySQL, pernyataan ON DELETE CASCADE digunakan untuk mengambil baris yang sesuai dari tabel anak secara implisit setiap kali baris dihapus dari tabel induk. Ini adalah tipe relatif dari perilaku kontekstual terkait kunci asing.

Dengan asumsi bahwa Anda telah menghasilkan dua tabel dengan KUNCI ASING di dalam hubungan kunci asing, merender satu tabel induk dan anak. Setelah itu, yang dimaksudkan untuk satu KUNCI ASING harus diperbaiki untuk yang lain agar berhasil di seluruh kegiatan cascading, lalu kita tentukan pernyataan ON DELETE CASCADE. Mungkin jika satu pernyataan FOREIGN KEY menentukan ON DELETE CASCADE, fungsi cascading akan memicu pengecualian.

Mari kita pahami bagaimana di seluruh tabel MySQL, kita bisa menggunakan pernyataan ON DELETE CASCADE.

Anda harus membuka Client Shell baris perintah MySQL yang baru saja diinstal untuk melanjutkan pekerjaan. Setelah dibuka, Anda akan diminta memasukkan kata sandi untuk terus menggunakan shell klien baris perintah MySQL, seperti yang ditambahkan di bawah ini.

Selanjutnya, kita akan membuat dua tabel yang disebut "pesanan" dan "pelanggan". Kedua tabel bersama terhubung dengan fungsi penghapusan kaskade menggunakan kunci asing. "Pesanan" adalah tabel induk pada saat ini, dan tabel anak adalah "pelanggan". Dengan skrip yang menyertainya, bersama dengan catatan masing-masing, Anda harus membuat kedua tabel. Gunakan perintah "gunakan" di bawah ini untuk memilih database yang ingin Anda kerjakan atau buat tabel di dalamnya. Di sini "data" adalah database yang kami gunakan.

>> menggunakan data;

Buat Tabel Induk:

Pertama-tama Anda harus membuat tabel “order” beserta field-fieldnya menggunakan perintah CREATE TABLE, seperti yang ditunjukkan pada query di bawah ini. Kolom "ID" akan digunakan di tabel berikutnya "pelanggan" sebagai kunci asing.

>> BUAT TABEL data.order ( ID INT PRIMARY KEY AUTO_INCREMENT NOT NULL, Item VARCHAR(50) NOT NULL, Price VARCHAR(50) NOT NULL);

Mari tambahkan beberapa data ke tabel ini. Anda harus menjalankan kueri yang ditampilkan di bawah ini di shell baris perintah MySQL dan menjalankan setiap perintah satu per satu di baris perintah atau cukup tambahkan semua perintah di baris perintah dalam satu langkah. Anda juga dapat menggunakan GUI MySQL Workbench untuk menambahkan data ke tabel.

Sekarang mari kita periksa tabel "pesanan" setelah memasukkan nilai di dalamnya. Anda dapat menggunakan perintah SELECT untuk tujuan ini sebagai berikut:

>> PILIH * DARI data.memesan;

Anda dapat melihat bahwa data telah berhasil disimpan ke dalam tabel "pesanan" seperti yang diharapkan.

Buat Tabel Anak dengan DELETE Cascade:

Sekarang, giliran meja lain yang disebut "pelanggan" untuk dibuat.

Pertama, Anda harus mengetikkan kata kunci “BUAT” bersama dengan nama tabel. Kemudian, Anda harus menambahkan nama bidang atau kolom beserta tipe datanya. Anda harus memberi nama kolom terakhir, yang akan digunakan sebagai kunci asing di tabel ini, sama seperti yang Anda beri nama di tabel sebelumnya. Seperti yang Anda ketahui kolom “ID” dari tabel “order” telah digunakan sebagai foreign key pada tabel “customer” sebagai “OrderID”. Setelah itu, Anda harus menambahkan kata kunci “CONSTRAINT” yang digunakan untuk menginisialisasi FOREIGN Key, beserta referensi tabel sebelumnya. Sekarang Anda harus menggunakan pernyataan “HAPUS CASCADE” bersama dengan kata kunci “ON”.

>> BUAT TABEL data.pelanggan(CustID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,Nama VARCHAR(45) NOT NULL,OrderID INT NOT NULL,CONSTRAINT order_id_fk FOREIGN KEY(OrderID) data REFERENSI.order(ID)ON DELETE CASCADE);

Setelah tabel dibuat, dan DELETE CASCADE telah berhasil diterapkan pada tabel ini, saatnya untuk memasukkan beberapa nilai ke dalam tabel ini. Coba instruksi di bawah ini satu per satu di shell klien baris perintah MySQL untuk melakukan ini.

Selanjutnya, lakukan penyisipan pertanyaan. Ini gunanya untuk mengecek tabel apakah data sudah berhasil ditambahkan atau belum. Jadi coba perintah di bawah ini untuk melakukan ini:

>> PILIH * DARI data.pelanggan;

Di sini, Anda dapat melihat sekilas output tabel yang datanya ditetapkan secara efisien dan tanpa kesalahan atau kesalahan apa pun.

Hapus Catatan:

Sekarang ketika Anda menghapus data atau baris apa pun dari tabel induk, itu juga akan menghapus data atau baris dari tabel anak karena DELETE CASCADE yang diaktifkan pada kunci asing yang disebutkan di tabel anak. Mari kita coba kueri DELETE terlebih dahulu, lalu periksa hasilnya. Kami akan menghapus data dari tabel "pesanan" di mana "ID" adalah "11". Jika "ID" yang sama akan ditemukan di tabel "pelanggan" di kolom kunci asing, "IDPesanan", maka baris atau data relatif dalam tabel "pelanggan" juga akan dihapus. Coba perintah di bawah ini di baris perintah untuk melakukannya:

>> HAPUS DARI data. pesan WHERE ID = '11';

Pertama, mari kita periksa tabel induk. Kemudian, ketik perintah SELECT yang ditemukan di bawah ini untuk mengambil catatan yang tersisa dari tabel "pesanan" setelah penghapusan beberapa catatan. Anda akan melihat bahwa catatan tabel, di mana "ID" adalah "11", telah berhasil dihapus dari tabel ini. Ini berarti bahwa catatan relatif dari nilai ID yang sama, "11", akan dihapus dari tabel anak juga.

>> PILIH * DARI data.memesan;

Mengambil catatan tabel anak menggunakan perintah SELECT semudah yang Anda lakukan sebelumnya. Coba saja perintah di bawah ini, dan Anda akan mendapatkan hasilnya.

Saat mendapatkan hasilnya, Anda dapat melihat bahwa catatan "CustID" yang memiliki nilai "1" telah dihapus sepenuhnya. Ini karena kolom "OrderID" memiliki nilai "11" di baris pertama, yang mengarah ke penghapusan baris itu.

>> PILIH * DARI data.pelanggan;

Ketika Anda mencoba untuk menjatuhkan tabel induk menggunakan perintah DROP, MySQL akan mencegah Anda melakukannya. Ini karena tabel induk telah mengaktifkan DELETE CASCADE di atasnya. Jadi untuk menjatuhkan tabel, Anda harus terlebih dahulu menghapus DELETE CASCADE darinya.

Kesimpulan:

Kami telah selesai dengan penjelasan DELETE CASCADE di MySQL. Untuk membuatnya lebih jelas, coba lebih banyak contoh di akhir Anda.

SuperTuxKart untuk Linux
SuperTuxKart adalah judul hebat yang dirancang untuk memberi Anda pengalaman Mario Kart gratis di sistem Linux Anda. Ini cukup menantang dan menyenang...
Pertempuran untuk Tutorial Westnoth
The Battle for Wesnoth adalah salah satu game strategi open source terpopuler yang bisa kamu mainkan saat ini. Tidak hanya game ini telah dikembangkan...
0 A.D. tutorial
Dari sekian banyak game strategi di luar sana, 0 A.D. berhasil menonjol sebagai judul yang komprehensif dan permainan taktis yang sangat dalam meskipu...