MySQL学习:外键约束foreign key

1、在创建表时,可添加外键

语法:

CREATE TABLE 表名(

....

外键列

CONSTRAINT 外键名称 FOREIGN KEY (外键列名称) REFERENCES 主表名称(主表列名称)

);

实例:

表为:


数据有冗余

解决方案:分成两张表



分别为:



注意:当不添加外键约束时,很有可能导致对应记录无效,主表中外键对应的字段被删除后,从表中外键列对应的值就无效了。

外键值可以为null,不可为主表中不存在的外键值。

2、删除外键

ALTER TABLE 表名 DROP FOREIGN KEY 外键名;

eg:ALTER TABLE employee DROP FOREIGN_KEY emp_dept_fk;

3、在创建表之后添加外键

ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN  KEY (外键列名称) REFERENCES 主表名称(主表列名称)

EG:ALTER TABLE employee ADD CONSTRAINT emp_dept_fk FOREIGN KRY (dep_id) REFERENCES department (id);

4、级联操作

添加级联操作

1、级联更新

ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN  KEY (外键列名称) REFERENCES 主表名称(主表列名称)ON UPDATE CASCADE;

2、级联删除

ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN  KEY (外键列名称) REFERENCES 主表名称(主表列名称)ON DELETE CASDATE;

注意:级联删除,当删除主表列中的值,对应的外键记录一整列会全部删除,很不安全,使用时应谨慎,

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容