外键可用于创建表之间的关系。外键关系可以是一对一或一对多。外键与另一个表的另一个字段匹配。
一对一关系 - 一个表中的一条记录将链接到另一个表中的一条记录。
一对多关系 - 一条记录将链接到另一个表中的多条记录。
下面是一个例子。首先,我们将创建一个表。 CREATE命令用于创建表。
mysql> create table tblF
- > (
- > id int ,
- > FirstName varchar(100),
- > FK_PK int
- > );
Query OK, 0 rows affected (0.57 sec)
创建第二个表。
mysql> create table tblP
- > (
- > FK_PK int,
- > LastName varchar(100),
- > primary key(FK_PK)
- > );
Query OK, 0 rows affected (0.94 sec)
以下是创建外键的语法。
mysql> ALTER table tblF add constraint ConstFK foreign key(FK_PK) references tblP(FK_PK);
Query OK, 0 rows affected (2.17 sec)
Records: 0 Duplicates: 0 Warnings: 0
使用DESC命令检查外键是否已经创建。
mysql> DESC tblF;
以下是输出。
+-----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| FirstName | varchar(100) | YES | | NULL | |
| FK_PK | int(11) | YES | MUL | NULL | |
+-----------+--------------+------+-----+---------+-------+
3 rows in set (0.05 sec)