Pengetahuan asas kunci asing dalam MySQL?

WBOY
Lepaskan: 2023-09-04 10:49:02
ke hadapan
496 orang telah melayarinya

MySQL 中外键的基础知识?

Kunci asing ialah sejenis kekangan yang boleh digunakan untuk mengekalkan integriti antara jadual. Jika kita mencipta kunci asing untuk satu jadual, maka jadual itu dipanggil jadual anak dan jadual kedua dipanggil jadual induk.

Dalam jadual induk, kunci asing akan bertindak sebagai kunci utama. Mari buat jadual.

Buat subjadual.

mysql> create table StudentEnrollment
   -> (
   -> StudentId int,
   -> StudentName varchar(200),
   -> StudentFKPK int
   -> );
Query OK, 0 rows affected (0.91 sec)
Salin selepas log masuk

Buat jadual ibu bapa

mysql> create table College
   -> (
   -> StudentFKPK int,
   -> CourseId int,
   -> CourseName varchar(200),
   -> CollegeName varchar(200),
   -> primary key(StudentFKPK)
   -> );
Query OK, 0 rows affected (0.46 sec)
Salin selepas log masuk

Dalam jadual induk, lajur "StudentFKPK" ialah kunci utama. Kami akan menambah kunci asing menggunakan arahan ALTER.

Berikut ialah sintaks untuk menambah kunci asing.

ALTER table yourChildTableName add constraint anyConstraintName
foreign key(primary key column name for parent table) 
references College(primary key column name for parent table);
Salin selepas log masuk

Berikut ialah pelaksanaan sintaks di atas dalam pertanyaan berikut.

mysql> alter table StudentEnrollment add constraint StudCollegeConst foreign key(StudentFKPK) references College(StudentFKPK);
Query OK, 0 rows affected (1.78 sec)
Records: 0  Duplicates: 0  Warnings: 0
Salin selepas log masuk

Sintaks untuk menyemak kewujudan kekangan kunci asing.

SELECT  TABLE_NAME, COLUMN_NAME,CONSTRAINT_NAME,REFERENCED_TABLE_NAME,
REFERENCED_COLUMN_NA FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHER  REFERENCED_TABLE_NAME = 'yourParentTableName or your referencedTableName';
Salin selepas log masuk

Sintaks di atas dilaksanakan dalam pertanyaan di bawah.

mysql> SELECT
   ->   TABLE_NAME,
   ->   COLUMN_NAME,
   ->   CONSTRAINT_NAME,
   ->   REFERENCED_TABLE_NAME,
   ->   REFERENCED_COLUMN_NAME
   ->   FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
   ->   WHERE
   ->   REFERENCED_TABLE_NAME = 'College';
Salin selepas log masuk

Ini adalah outputnya.

+-------------------+-------------+------------------+-----------------------+------------------------+
| TABLE_NAME        | COLUMN_NAME | CONSTRAINT_NAME  | REFERENCED_TABLE_NAME | REFERENCED_COLUMN_NAME |
+-------------------+-------------+------------------+-----------------------+------------------------+
| StudentEnrollment | StudentFKPK | StudCollegeConst | College               | StudentFKPK            |
+-------------------+-------------+------------------+-----------------------+------------------------+
1 row in set, 2 warnings (0.03 sec)
Salin selepas log masuk

Kami mempunyai lajur bernama StudentFKPK dan CONSTRAINT_NAME ialah StudCollegeConst.

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

sumber:tutorialspoint.com
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!