Rumah >pangkalan data >tutorial mysql >Bolehkah kunci asing kosong dalam mysql?

Bolehkah kunci asing kosong dalam mysql?

下次还敢
下次还敢asal
2024-05-01 20:27:36775semak imbas

Kunci asing dalam MySQL boleh menjadi batal, menyokong senario perniagaan tertentu seperti perhubungan pilihan, pemadaman bertingkat dan integriti data. Apabila ditetapkan kepada NULL, baris jadual anak tidak boleh mempunyai perkaitan yang sepadan dengan jadual induk.

Bolehkah kunci asing kosong dalam mysql?

Bolehkah kunci asing menjadi batal dalam MySQL?

Jawapan: Ya.

Dalam MySQL, kunci asing boleh kosong, membenarkan baris dalam jadual anak yang tidak berkaitan dengan sebarang rekod dalam jadual induk.

Butiran:

Kunci asing ialah kekangan pangkalan data yang memaksa setiap baris dalam jadual anak dikaitkan dengan baris dalam jadual induk. Walau bagaimanapun, untuk menyokong senario perniagaan tertentu, MySQL membenarkan kunci asing menjadi batal.

Apabila kunci asing kosong, ini bermakna baris dalam jadual anak tidak sepadan dengan mana-mana baris dalam jadual induk. Ini berguna dalam situasi berikut:

  • Hubungan pilihan: Sesetengah baris dalam jadual anak mungkin berkaitan dengan baris dalam jadual induk, manakala yang lain mungkin tidak.
  • Pemadaman bertingkat: Apabila kunci asing kosong, walaupun rekod dalam jadual induk dipadamkan, rekod berkaitan dalam jadual anak tidak akan dipadamkan secara lata.
  • Integriti Data: Dalam sesetengah kes, membenarkan kunci asing menjadi batal boleh membantu mengekalkan integriti data dan mengelakkan ketidakkonsistenan data.

Nota:

Walaupun kunci asing boleh menjadi batal, ciri ini harus digunakan dengan berhati-hati. Kunci asing yang kosong boleh menyebabkan ketidakkonsistenan data dan prestasi pertanyaan yang merosot. Biasanya, apabila menguatkuasakan integriti data, adalah disyorkan untuk menggunakan kunci asing bukan nol.

Cara untuk menetapkan kepada null:

Dalam MySQL, anda boleh menetapkan kunci asing kepada null dengan menyatakan NULL apabila mencipta kekangan kunci asing. Contohnya:

<code class="sql">CREATE TABLE child_table (
  child_id INT PRIMARY KEY,
  parent_id INT,
  FOREIGN KEY (parent_id) REFERENCES parent_table(parent_id) ON DELETE SET NULL
);</code>

Atas ialah kandungan terperinci Bolehkah kunci asing kosong dalam mysql?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn