Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana Mempertahankan Batasan Kunci Asing di Berbagai Basis Data?

Saya tidak dapat memikirkan cara untuk melakukan ini dengan MySQL standar.

Anda dapat menulis plugin untuk Proxy MySQL , yang mengelola integritas referensial antara tabel induk dan anak di server yang berbeda:

  • Cegat INSERT dan UPDATE terhadap tabel anak. Kueri untuk mencocokkan baris di tabel induk. Gagal INSERT /UPDATE jika tidak ada kecocokan yang ditemukan di tabel induk.

  • Cegat DELETE terhadap tabel induk. Kueri untuk baris dependen di tabel anak. Gagal DELETE jika ada baris dependen yang ditemukan di tabel anak. Jika batasan dimaksudkan untuk mendukung perilaku berjenjang, lakukan itu alih-alih gagal.

  • Cegat UPDATE terhadap tabel induk. Jika nilai kunci utama berubah sebagai bagian dari pembaruan, kueri untuk baris dependen yang ditemukan di tabel anak. Gagal UPDATE jika ada baris dependen yang ditemukan di tabel anak. Jika batasan dimaksudkan untuk mendukung perilaku berjenjang, lakukan itu alih-alih gagal.

Perhatikan bahwa Anda harus menyimpan informasi tentang batasan integritas referensial di plugin Proxy MySQL Anda (atau menulis file konfigurasi khusus untuk plugin Anda yang mencatat hubungan). Anda tidak dapat menggunakan FOREIGN KEY konvensional sintaks untuk mendeklarasikan batasan tersebut di seluruh instance MySQL.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP Periksa NULL

  2. OpenSSL - kesalahan 18 pada pencarian 0 kedalaman:sertifikat yang ditandatangani sendiri

  3. MySQL Masukkan Ke Pilih

  4. Penggunaan parameter untuk mysql_query

  5. Bisakah Mysql Membagi kolom?