目录
前言
使用MySQL关联数据表时,创建外键的两种方式:创建表时增加外键,已存在表增加外键。以下案例通过Navicat for MySQL实现。
1.创建表时增加外键
首先创建第一张被关联表Vendors商品供应商表。
-- 供应商列表
CREATE TABLE Vendors (
-- 供应商ID:主键列,自增长
vend_id INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '供应商ID',
-- 供应商名:可变字符,非空
vend_name VARCHAR (30) NOT NULL COMMENT '供应商名',
-- 供应商地址
vend_address VARCHAR (100) NOT NULL COMMENT '地址',
-- 供应商城市
vend_city VARCHAR (20) NOT NULL COMMENT '城市',
-- 供应商州
vend_state VARCHAR (20) NOT NULL COMMENT '州',
-- 供应商邮编
vend_zip VARCHAR (20) NOT NULL COMMENT '邮编',
-- 供应商国家
vend_country VARCHAR (20) NOT NULL COMMENT '国家'
);
然后创建第二张关联表Products产品表。
-- 产品目录表
CREATE TABLE Products (
-- 产品ID:主键列,自增长
prod_id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
-- 供应商ID:外键
vend_id INT NOT NULL COMMENT '供应商ID',
-- 产品名
prod_name VARCHAR (30) NOT NULL COMMENT '产品名',
-- 产品价格
prod_price DOUBLE NOT NULL COMMENT '产品价格',
-- 产品描述
prod_desc VARCHAR (100) COMMENT '产品描述',
FOREIGN KEY (vend_id) REFERENCES Vendors (vend_id)
);
可以看到已经通过外键关联起来。
2.已存在表增加外键
首先删除刚才两张表所创建的外键。
然后通过下面指令对已经存在的表增加外键。语法如下:
ALTER TABLE 表名 ADD FOREIGN KEY [外键名字] (外键字段) REFERENCES 父表 (主键字段);
-- 已存在表增加外键
ALTER TABLE Products ADD FOREIGN KEY products_vendors_fk_1 (vend_id) REFERENCES Vendors (vend_id);
可以看到添加外键成功。