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 Show
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
SintaksisBerikut 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 RESTRICTContoh Kunci AsingMari 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 TabelDi sini, kita akan melihat bagaimana struktur database kita menggunakan query berikut Kita akan mendapatkan struktur seperti di bawah ini 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 TabelSekarang, 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 Jalankan pernyataan sisipkan di bawah ini untuk menambahkan data ke kontak tabel Tabel kontak kami terlihat seperti di bawah ini 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 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 Contoh Kunci Asing menggunakan tindakan SET NULLDi 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 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 AsingMySQL 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 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 Tentukan Kunci Asing Menggunakan Pernyataan ALTER TABLEPernyataan 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 AsingMySQL 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 melihat batasan kunci asing di MySQL?pilih * dari INFORMATION_SCHEMA. TABLE_CONSTRAINTS di mana CONSTRAINT_TYPE = 'FOREIGN KEY'; . . To see all FKs in your table: USE ' Untuk melihat semua tabel dan FK di skema Anda. . Untuk melihat semua FK di database Anda Bagaimana cara menemukan kunci asing dari sebuah tabel di meja kerja MySQL?Di Editor Tabel buka tab Kunci Asing (di bagian bawah) . Kunci ditampilkan di panel kiri dan detail kunci yang dipilih ditampilkan di sebelah kanan. Anda dapat melihat pasangan kolom asing dan utama di kolom Kolom dan Kolom Referensi di kisi di tengah jendela.
Bagaimana Anda menemukan batasan kunci asing?foreign_keys SQL system view untuk membuat daftar dan menemukan batasan pemeriksaan kunci asing pada tabel database. Tampilan katalog sistem SQL Server sys. foreign_keys adalah tempat yang tepat untuk mengidentifikasi dan mencantumkan kunci asing dan nama kunci asing yang dibuat pada tabel database SQL atau referensi ke tabel SQL tertentu.
Bagaimana cara melihat batasan pada tabel meja kerja MySQL?Masalah. Anda ingin menemukan nama-nama kendala dalam sebuah tabel di MySQL Contoh. Kami ingin menampilkan nama-nama kendala dalam tabel siswa Larutan. PILIH TABLE_NAME, CONSTRAINT_TYPE, CONSTRAINT_NAME. . Diskusi. Gunakan view table_constraints dalam skema information_schema Bagaimana cara memilih kunci asing di meja kerja?Untuk menambahkan kunci asing, klik baris terakhir di daftar Nama Kunci Asing. Masukkan nama untuk kunci asing dan pilih kolom atau beberapa kolom yang ingin Anda indeks dengan mencentang nama kolom di daftar Kolom . Anda dapat menghapus kolom dari indeks dengan menghapus tanda centang dari kolom yang sesuai.
Bagaimana cara memeriksa batasan kunci asing dalam SQL menggunakan kueri?Pertama, cari tahu nama batasan FOREIGN KEY Anda dengan cara ini. PILIH TABLE_NAME, COLUMN_NAME, CONSTRAINT_NAME, -- < REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME DARI INFORMATION_SCHEMA . |