时间:2021-07-01 10:21:17 帮助过:2人阅读
设置外键约束:
1、创建表时添加外键约束
语法规则如下:
[CONSTRAINT <外键名>] FOREIGN KEY 字段名 [,字段名2,…]
REFERENCES <主表名> 主键列1 [,主键列2,…]
其中:<外键名>为定义的外键约束的名称,一个表中不能有相同名称的外键;<字段名>表示子表需要添加外健约束的字段列;<主表名>即被子表外键所依赖的表的名称;<主键列>表示主表中定义的主键列或者列组合。
【实例 1】创建一个名为test_dept1的表作为父表
创建数据表 tb_emp6,并在表 tb_emp6 上创建外键约束,让它的键 deptId 作为外键关联到表 tb_dept1 的主键 id
fk_emp_dept1 为外键约束,外键名称为 deptId,其依赖于表 tb_dept1 的主键 id。
提示:关联指的是关系数据库中,相关表之间的联系。它是通过相同的属性或属性组来表示的。子表的外键必须关联父表的主键,且关联字段的数据类型必须匹配,如果类型不一样,则创建子表时会出现错误“ERROR 1005(HY000):Can‘t create table‘database.tablename‘(errno:150)”。
2、在修改数据表时添加外键约束
语法规则为:
ALTER TABLE <数据表名> ADD CONSTRAINT <索引名>
FOREIGN KEY(<列名>) REFERENCES <主表名> (<列名>);
【实例 2】修改数据表 tb_emp3,将字段 deptId 设置为外键,与数据表 tb_dept1 的主键 id 进行关联
同一个数据库中的外键约束名称不能重复,否则会报错
删除外键约束:
对于数据库中定义的外键,如果不再需要,可以将其删除。外键一旦删除,就会解除主表和从表间的关联关系,MySQL 中删除外键的语法格式如下:
ALTER TABLE <表名> DROP FOREIGN KEY <外键约束名>;
【实例 3】删除数据表 tb_emp3 中的外键约束 fk_em_dept1
删除前:
删除后:
tb_emp3 中已经不存在 FOREIGN KEY,原有的名称为 fk_emp_dept 的外键约束删除成功。
MySQL之外键约束(FOREIGN KEY)
标签:mysq add 现在 包含 block nbsp 格式 属性 修改