Rumah >pangkalan data >tutorial mysql >Bagaimanakah Kekangan Kunci Asing MySQL dengan DELETE ON CASCADE Mencegah Ketidakkonsistenan Data?
Menggunakan Kekangan Kunci Asing MySQL untuk Mencegah Ketidakkonsistenan Data
Untuk mengekalkan integriti data dan mengelakkan rekod yatim, melaksanakan kekangan kunci asing adalah penting. Ini amat penting apabila menggunakan jadual InnoDB. Kekunci asing mewujudkan perhubungan antara jadual, memastikan bahawa apabila rekod induk dipadamkan, rekod anak yang sepadan akan dipadamkan juga secara automatik.
Memahami DELETE ON CASCADE
DELETE ON CASCADE ialah kekangan kunci asing yang memadamkan rekod anak secara automatik apabila rekod induk mereka dipadamkan. Ini menghalang data menjadi yatim, di mana rekod kanak-kanak wujud tanpa rekod ibu bapa yang sah.
Menyediakan Kekangan Kunci Asing dan PADAM PADA CASCADE
Untuk menyediakan kekangan kunci asing dengan DELETE ON CASCADE, ikut ini langkah:
Contoh:
Pertimbangkan jadual contoh yang disebut dalam pernyataan masalah:
categories - id (INT) - name (VARCHAR 255) products - id - name - price categories_products - categories_id - products_id
Untuk menyediakan kekangan kunci asing yang betul, kami akan mencipta jadual sebagai berikut:
CREATE TABLE categories ( id int unsigned not null primary key, name VARCHAR(255) default null )Engine=InnoDB; CREATE TABLE products ( id int unsigned not null primary key, name VARCHAR(255) default null )Engine=InnoDB; CREATE TABLE categories_products ( category_id int unsigned not null, product_id int unsigned not null, PRIMARY KEY (category_id, product_id), KEY pkey (product_id), FOREIGN KEY (category_id) REFERENCES categories (id) ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY (product_id) REFERENCES products (id) ON DELETE CASCADE ON UPDATE CASCADE )Engine=InnoDB;
Dengan persediaan ini, jika anda memadamkan kategori, hanya rekod yang sepadan dalam categories_products akan dipadamkan, memelihara integriti jadual produk. Walau bagaimanapun, pemadaman produk tidak akan menjejaskan jadual kategori.
Dengan melaksanakan kekangan kunci asing dengan teliti dengan DELETE ON CASCADE, anda boleh mengekalkan integriti data dan mencegah rasuah data, memastikan pangkalan data anda mencerminkan hubungan yang betul antara rekod.
Atas ialah kandungan terperinci Bagaimanakah Kekangan Kunci Asing MySQL dengan DELETE ON CASCADE Mencegah Ketidakkonsistenan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!