Mysql 简明教程
MySQL - Foreign Key
在 MySQL 中, Foreign Key 是表中的列(或多列组合),其值与另一个表中主键列的值匹配。因此,使用外键,我们可以将两个表链接在一起。
外键也称为表的引用键,因为它可以引用任何唯一字段。
除了链接到表外,外键约束还通过防止主键表中的数据更改使到外键表数据的链接无效来确保引用完整性。即,外键防止操作(如“删除表”)消除两个表之间的连接。
Creating MySQL Foreign Key
我们可以使用 CREATE TABLE 语句中的 CONSTRAINT…FOREIGN KEY…REFERENCES 关键字在 MySQL 表上创建外键。
Syntax
以下是向表的列中添加外键约束的语法 −
CREATE TABLE table2(
column1 datatype,
column2 datatype,
...
CONSTRAINT constraint_name
FOREIGN KEY (column2)
REFERENCES table1(column1)
);
Example
让我们使用 CREATE TABLE 语句创建一个名为 CUSTOMERS 的表 −
CREATE TABLE CUSTOMERS (
ID INT NOT NULL,
NAME VARCHAR (20) NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR (25) UNIQUE,
SALARY DECIMAL (18, 2),
PRIMARY KEY(ID)
);
为了说明外键,我们需要两个表,因此让我们再创建一个表 −
CREATE TABLE ORDERS (
OID INT NOT NULL,
DATE VARCHAR (20) NOT NULL,
CUSTOMER_ID INT NOT NULL,
AMOUNT DECIMAL (18, 2),
CONSTRAINT fk_customers FOREIGN KEY (CUSTOMER_ID)
REFERENCES CUSTOMERS(ID)
);
Creating Foreign Key on Existing Column
我们还可以在现有表的列上使用 ALTER TABLE…ADD CONSTRAINT 语句创建外键约束。
Syntax
以下是向现有表添加外键约束的语法 −
ALTER TABLE table_name2
ADD CONSTRAINT constraint_name
FOREIGN KEY(column_name2)
REFERENCES table_name1(column_name1);