Fremdschlüssel ist eine Art Einschränkung, die verwendet werden kann, um die Integrität zwischen Tabellen aufrechtzuerhalten. Wenn wir einen Fremdschlüssel für eine Tabelle erstellen, wird diese Tabelle als untergeordnete Tabelle und die zweite Tabelle als übergeordnete Tabelle bezeichnet.
In der übergeordneten Tabelle fungiert der Fremdschlüssel als Primärschlüssel. Lassen Sie uns eine Tabelle erstellen.
Untertabellen erstellen.
mysql> create table StudentEnrollment -> ( -> StudentId int, -> StudentName varchar(200), -> StudentFKPK int -> ); Query OK, 0 rows affected (0.91 sec)
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)
In der übergeordneten Tabelle ist die Spalte „StudentFKPK“ der Primärschlüssel. Wir werden Fremdschlüssel mit dem ALTER-Befehl hinzufügen.
Das Folgende ist die Syntax zum Hinzufügen von Fremdschlüsseln.
ALTER table yourChildTableName add constraint anyConstraintName foreign key(primary key column name for parent table) references College(primary key column name for parent table);
Hier ist die Implementierung der obigen Syntax in der folgenden Abfrage.
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
Syntax zum Überprüfen der Existenz von Fremdschlüsseleinschränkungen.
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';
Die obige Syntax ist in der folgenden Abfrage implementiert.
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';
Dies ist die Ausgabe.
+-------------------+-------------+------------------+-----------------------+------------------------+ | 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)
Wir haben eine Spalte namens StudentFKPK und CONSTRAINT_NAME ist StudCollegeConst.
Das obige ist der detaillierte Inhalt vonGrundkenntnisse über Fremdschlüssel in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!