Rumah > Artikel > pangkalan data > Ringkasan mata pengetahuan kekangan kunci asing MySQL
Artikel ini membawa anda pengetahuan yang berkaitan tentang mysql, yang terutamanya mengatur isu berkaitan kekangan kunci asing (Kunci Asing) adalah antara dua jadual data dalam pangkalan data lajur tertentu. Sambungan ini biasanya disebabkan oleh medan dengan maksud yang sama dalam senario sebenar.
Pembelajaran yang disyorkan: tutorial video mysql
Kunci asing kekangan ( Foreign Key) ialah hubungan yang diwujudkan oleh lajur antara dua jadual data dalam pangkalan data. Sambungan ini biasanya disebabkan oleh medan dengan makna yang sama dalam senario sebenar. Melalui pengenalan kekangan kunci asing, MySQL boleh menjadikan integriti data dalam jadual data lebih kukuh dan lebih konsisten dengan situasi paparan. Di bawah, saya memberikan contoh untuk menggambarkan peranan kekangan kunci asing MySQL.
Jika kita membina pangkalan data untuk sistem pengurusan prestasi pelajar universiti, terdapat dua jadual Satu jadual ialah jadual pelajar, yang menyimpan nombor pelajar, nama, jantina, jabatan dan maklumat lain, dan jadual lain ialah jadual. jadual gred Maklumat seperti nombor ID pelajar, nombor kursus, markah ujian, dll. disimpan. Dengan cara ini, kekangan kunci asing akan diwujudkan antara kedua-dua jadual melalui nombor pelajar. Sewajarnya bagi kita untuk berfikir bahawa nombor ID pelajar dalam jadual transkrip bergantung kepada kewujudan nombor ID pelajar dalam jadual pelajar Jika pelajar lulus, atau tercicir, dan dipadamkan daripada jadual pelajar, maka berkaitan dengannya gred tidak perlu dalam jadual transkrip wujud. Sebelum mencipta hubungan kunci asing, kedua-dua jadual ini wujud sepenuhnya secara bebas Kita boleh memasukkan secara paksa skor berkaitan pelajar yang tidak wujud ke dalam jadual skor, atau kita boleh memadam pelajar secara paksa dalam jadual pelajar, tanpa mengira maklumat skor. Sama ada ia wujud dalam lembaran skor. Walau bagaimanapun, selepas mewujudkan hubungan kunci asing, pangkalan data MySQL akan mengekang dua gelagat di atas Setiap kali data dimasukkan atau dipadam, integriti data akan diperiksa, supaya operasi kami mesti mematuhi situasi sebenar.
Untuk mencipta kunci asing dalam pangkalan data MySQL, berikut empat perkara perlu dipenuhi syarat, jika tidak ia akan ditolak oleh pangkalan data MySQL:
1. Jadual dan lajur yang digunakan untuk mencipta kunci asing wujud
2. Lajur yang membentuk kunci asing wujud dalam indeks
3. Enjin jadual data mesti dinyatakan sebagai InnoDB
4. Jenis data medan kunci asing dan medan berkaitan mesti konsisten
Buat semasa mencipta jadual data Untuk kekangan kunci asing, anda hanya perlu menggunakan kata kunci kunci asing untuk menentukan medan kunci asing jadual ini selepas kenyataan cipta jadual data, gunakan kata kunci rujukan untuk menentukan medan berkaitan jadual berkaitan dan mengekang tingkah laku dengan jelas.
Contoh pernyataan SQL untuk mencipta kekangan kunci asing adalah seperti berikut:
create table student (id int(8),name varchar(20),department varchar(20) ,index (id))ENGINE=InnoDB; create table grade (Sid int(8),Cid int(10),score int,index(Sid),foreign key (Sid) references student(id) on delete restrict on update cascade)ENGINE=InnoDB;
Dalam penyataan SQL di atas, pada sekatan padam menunjukkan bahawa kunci asing akan menyekat operasi pemadaman apabila memadam, semasa pada lata kemas kini Ini bermakna operasi kemas kini akan disegerakkan apabila nama dikemas kini.
Begitu juga, MySQL juga menyokong penambahan kekangan kunci asing selepas mencipta jadual data. Dalam contoh di atas, kami mula-mula memadamkan jadual gred, dan kemudian mencipta jadual gred Kami tidak mencipta kunci asing sekarang. Cuba tambah kunci asing selepas membuat jadual gred adalah seperti berikut:
drop table grade; create table grade(Sid int(8),Cid int(10),score int); alter table grade add index(Sid); alter table grade add foreign key (Sid) references student(id) on delete restrict on update cascade;
Keputusan pelaksanaan adalah seperti berikut :
Seterusnya, mari kita uji fungsi kekangan kunci asing. . Mula-mula, cuba masukkan kekangan kunci asing ke dalam jadual gred pelajar itu tidak wujud, dan didapati ia ditolak:
Selepas itu, saya cuba memadam. pelajar yang grednya wujud dalam jadual pelajar, dan didapati bahawa ia telah ditolak:
Seterusnya, kami menguji fungsi kemas kini lata kekangan kunci asing MySQL dan mendapati bahawa jika data dalam jadual pelajar ditukar, jadual gred juga akan berubah, seperti yang ditunjukkan di bawah:
Pembelajaran yang disyorkan: tutorial video mysql
Atas ialah kandungan terperinci Ringkasan mata pengetahuan kekangan kunci asing MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!