Rumah  >  Artikel  >  pangkalan data  >  kunci asing mysql dan padam

kunci asing mysql dan padam

WBOY
WBOYasal
2023-05-18 12:25:08751semak imbas

Kunci asing MySQL dan pemadaman

MySQL ialah sistem pengurusan pangkalan data hubungan yang biasa digunakan yang digunakan secara meluas dan sangat berkuasa. Dalam MySQL, kunci asing adalah konsep yang sangat penting dan memainkan peranan penting dalam reka bentuk pangkalan data dan penyelenggaraan data. Dalam artikel ini, kami akan memperkenalkan kunci asing dalam MySQL dan cara menggunakan kunci asing untuk memadam data dalam pangkalan data.

Kunci Asing MySQL

Kunci Asing merujuk kepada menetapkan kunci dalam satu jadual pangkalan data yang menunjuk ke kunci utama jadual lain. Jika jadual mempunyai kunci asing, maka rekod jadual utama yang sepadan dengan setiap rekod yang layak dalam jadual ini mesti wujud, jika tidak, operasi yang berkaitan tidak boleh dilakukan. Operasi ini memastikan integriti dan ketekalan data antara jadual.

Kami menggambarkan konsep kunci asing melalui contoh berikut:

Cipta orang meja:

CREATE TABLE person (
    id INT PRIMARY KEY,
    name VARCHAR(20)
);

Cipta kad meja:

CREATE TABLE card (
    id INT PRIMARY KEY,
    person_id INT,
    card_no VARCHAR(20),
    FOREIGN KEY(person_id) REFERENCES person(id)
);

dalam kad meja , person_id ialah kunci asing, yang menunjuk ke medan id dalam orang jadual. Tujuan kunci asing ini adalah untuk memastikan person_id dalam setiap rekod kad wujud dalam jadual orang, sekali gus memastikan konsistensi dan integriti.

Gunakan kekunci asing untuk memadam

Apabila kita memadam dalam pangkalan data, jika terdapat hubungan antara jadual, kita perlu memastikan bahawa operasi pemadaman tidak akan memusnahkan integriti dan integriti pangkalan data. Dalam MySQL, ini boleh dicapai menggunakan kunci asing.

Apabila melakukan operasi pemadaman, jika rekod yang hendak dipadam wujud dalam jadual yang dikaitkan dengan kunci asing, anda perlu memadamkan rekod dalam jadual yang berkaitan dahulu, kemudian padamkan rekod dalam jadual ini. Proses ini boleh dicapai menggunakan ON DELETE CASCADE dan ON DELETE SET NULL.

ON DELETE CASCADE beroperasi dengan mengelas dan memadam rekod berkaitan secara automatik dalam jadual ini apabila rekod dalam jadual yang berkaitan dipadamkan. Contoh:

CREATE TABLE person (
    id INT PRIMARY KEY,
    name VARCHAR(20)
);

CREATE TABLE card (
    id INT PRIMARY KEY,
    person_id INT,
    card_no VARCHAR(20),
    FOREIGN KEY(person_id) REFERENCES person(id) ON DELETE CASCADE
);

INSERT INTO person(id, name) VALUES(1, 'Tom');

INSERT INTO card(id, person_id, card_no) VALUES(1, 1, '123456');

DELETE FROM person WHERE id = 1;

Dalam contoh di atas, kami mula-mula memasukkan rekod ke dalam jadual orang, dan kemudian memasukkan rekod ke dalam jadual kad Rekod ini menunjukkan rekod dengan id 1 dalam jadual orang. Akhir sekali, kami menggunakan penyataan DELETE untuk memadam rekod dengan id 1 dalam jadual orang ini juga akan memadam rekod yang berkaitan secara automatik dalam jadual kad.

ON DELETE SET NULL operasi ialah apabila rekod dalam jadual berkaitan dipadamkan, rekod berkaitan dalam jadual ini ditetapkan kepada NULL. Contoh:

CREATE TABLE person (
    id INT PRIMARY KEY,
    name VARCHAR(20)
);

CREATE TABLE card (
    id INT PRIMARY KEY,
    person_id INT,
    card_no VARCHAR(20),
    FOREIGN KEY(person_id) REFERENCES person(id) ON DELETE SET NULL
);

INSERT INTO person(id, name) VALUES(1, 'Tom');

INSERT INTO card(id, person_id, card_no) VALUES(1, 1, '123456');

DELETE FROM person WHERE id = 1;

Dalam contoh di atas, kami mula-mula memasukkan rekod ke dalam jadual orang, dan kemudian memasukkan rekod ke dalam jadual kad Rekod ini menunjukkan rekod dengan id 1 dalam jadual orang. Akhir sekali, kami menggunakan pernyataan DELETE untuk memadam rekod dengan id 1 dalam jadual orang Operasi pemadaman ini secara automatik akan menetapkan person_id dalam rekod berkaitan dalam jadual kad kepada NULL.

Ringkasan

Kunci asing MySQL ialah konsep yang sangat penting dan memainkan peranan penting dalam reka bentuk pangkalan data dan penyelenggaraan data. Menggunakan kunci asing boleh memastikan integriti dan konsistensi data antara jadual. Apabila melakukan operasi padam, anda boleh menggunakan ON DELETE CASCADE dan ON DELETE SET NULL untuk mengendalikan perkaitan antara jadual untuk memastikan ketekalan pangkalan data.

Atas ialah kandungan terperinci kunci asing mysql dan padam. 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
Artikel sebelumnya:parameter pertanyaan mysqlArtikel seterusnya:parameter pertanyaan mysql