在 MySQL 中使用外键

mysqlmysqli database

让我们了解外键在 MySQL 中的用法 −

InnoDB 表支持检查外键约束。外键约束并非仅在连接两个表时才需要。对于除 InnoDB 之外的存储引擎,可以在定义需要使用的列时使用它。REFERENCES tableName(colName) 没有实际作用,只是向用户提示当前定义的列旨在引用不同表中的列。

MySQL 不会进行任何检查以确保 ‘colName’ 确实存在于 ‘tableName’ 中,或者 ‘tableName’ 本身是否真正存在。

在父表中,外键将充当主键。让我们看一个创建表的示例。

创建子表

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)

在父表中,列"StudentFKPK"是主键。我们将使用 ALTER 命令添加外键。

以下是添加外键的语法。

语法

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

相关文章