Rumah  >  Artikel  >  Apakah maksud kekangan kunci asing mysql?

Apakah maksud kekangan kunci asing mysql?

百草
百草asal
2023-07-10 09:56:332080semak imbas

Kekangan kunci asing MySQL merujuk kepada kekangan yang mengehadkan hubungan antara jadual Anda boleh menentukan lajur dalam satu jadual, dan lajur ini akan merujuk lajur dalam jadual lain.

Apakah maksud kekangan kunci asing mysql?

Sistem pengendalian tutorial ini: sistem Windows 10, mysql versi 8.0, komputer Dell G3.

Kekangan kunci asing MySQL merujuk kepada kekangan yang mengehadkan hubungan antara jadual. Ia boleh menentukan lajur dalam satu jadual yang akan merujuk lajur dalam jadual lain. Korelasi ini memastikan integriti dan konsistensi data.

MySQL ialah sistem pengurusan pangkalan data hubungan yang digunakan secara meluas, biasanya digunakan untuk penyimpanan data dan pengurusan aplikasi rangkaian. Kekangan kunci asing MySQL merujuk kepada mekanisme yang digunakan untuk memastikan integriti data dan mengurus perhubungan data Dalam MySQL, disebabkan oleh hubungan antara jadual, penggunaan kekangan kunci asing boleh mengehadkan operasi seperti pemadaman dan kemas kini data, dengan itu memastikan Konsistensi dan ketepatan. data di seluruh sistem.

Kunci asing itu sendiri ialah lajur khas yang mencipta sambungan antara dua jadual melalui lajur kunci asing untuk membentuk hubungan perkaitan. Dalam MySQL, syarat tertentu perlu dipenuhi untuk mencipta kekangan kunci asing Contohnya, kedua-dua jadual mesti menggunakan jenis enjin InnoDB, dan lajur kunci asing mestilah daripada jenis yang sama dengan lajur kunci utama jadual yang berkaitan. Apabila membuat kekangan kunci asing, anda boleh menentukan indeks pada lajur kunci utama jadual yang berkaitan untuk meningkatkan kelajuan pertanyaan.

Menggunakan kekangan kunci asing boleh membawa banyak faedah, seperti mengelakkan lebihan dan ralat data, mencegah ketidakkonsistenan data dan meningkatkan integriti dan ketepatan data. Dalam MySQL, kekangan kunci asing juga boleh melaksanakan operasi pemadaman dan kemas kini lata, iaitu, apabila rekod dalam jadual utama dipadam atau dikemas kini, rekod berkaitan dalam jadual hamba boleh dipadam atau dikemas kini secara automatik, dengan itu memudahkan penyelenggaraan dan pengurusan sistem .

Menggunakan kekangan kunci asing boleh mencapai perkara berikut:

1. Mencegah pemadaman rekod dalam jadual induk

CREATE TABLE 表名(
id INT PRIMARY KEY,
...
);
CREATE TABLE 子表名称(
id INT PRIMARY KEY,
rid INT,
...
CONSTRAINT fk_table1 FOREIGN KEY(rid) REFERENCES 表名(id)
);

Dalam kod ini, kata kunci FOREIGN KEY dan REFERENCES digunakan untuk pengaitan. Menggunakan kekangan kunci asing dalam jadual anak untuk merujuk jadual induk akan menghalang baris dalam jadual anak daripada dipadamkan apabila rekod dalam jadual induk dipadamkan.

2. Elakkan nilai tidak sah daripada dimasukkan

CREATE TABLE 表名(
id INT PRIMARY KEY,
...
);
CREATE TABLE 子表名称(
id INT PRIMARY KEY,
rid INT,
...
CONSTRAINT fk_table1 FOREIGN KEY(rid) REFERENCES 表名(id)
);

Dalam kod ini, kata kunci FOREIGN KEY dan RUJUKAN digunakan untuk perkaitan. Apabila kekangan kunci asing digunakan dalam jadual anak untuk merujuk jadual induk, percubaan untuk memasukkan nilai ke dalam jadual anak yang tidak wujud dalam jadual induk akan ditolak.

3. Pastikan integriti dan konsistensi data

CREATE TABLE 表名(
id INT PRIMARY KEY,
...
);
CREATE TABLE 子表名称(
id INT PRIMARY KEY,
rid INT,
...
CONSTRAINT fk_table1 FOREIGN KEY(rid) REFERENCES 表名(id)
);

Dalam kod ini, kata kunci FOREIGN KUNCI dan RUJUKAN digunakan untuk perkaitan. Menggunakan kekangan kunci asing dalam jadual anak untuk merujuk jadual induk memastikan lajur rid dalam jadual anak mesti diperoleh daripada lajur id jadual induk. Perkaitan ini dapat memastikan integriti dan konsistensi data.

Atas ialah kandungan terperinci Apakah maksud kekangan kunci asing 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