一、FOREIGN KEY 的定义分为两种:列级约束和表级约束 2 1、列及约束的话,可以在列定义的同时,定义外键约束
二、如果之前表已经存在,要给其中一个列添加约束的话,就属于alter操作了
如果在你添加之前,B1已经有了外键约束,那么就要先删除之前的约束,再添加,否则是不成功的
什么叫级联删除?
外键的级联删除:如果父表中的记录被删除,则子表中对应的记录自动被删除
父表——被外键引用的表
子表——引用父表中的健作为外健的表
on updata 参数 、 on delete 参数
这是数据库外键定义的一个可选项,用来设置当主键表中的被参考列的数据发生变化时,外键表中响应字段的变换规则的。update 则是主键表中被参考字段的值更新,delete是指在主键表中删除一条记录:on update 和 on delete 后面可以跟的词语有四个no action , set null , set default ,cascadeno action 表示 不做任何操作,set null 表示在外键表中将相应字段设置为nullset default 表示设置为默认值cascade 表示级联操作,就是说,如果主键表中被参考字段更新,外键表中也更新,主键表中的记录被删除,外键表中改行也相应删除
一个表只能有一个主键,一个主键又可以分为保存单个字段(单字段键)与多字段(叫联合主键)
外键:
好处:可以使得两张表关联,保证数据的一致性和实现一些级联操作
作用:保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。 使两张表形成关联,外键只能引用外表中的列的值!
父表代码:
1 create table 工程职工工时表(2 工程ID integer,3 姓名 varchar(20) not null,4 primary key(工程ID)5 );
子表代码:
1 create table haha(2 工程ID integer,3 foreign key(工程ID) references 工程职工工时表(工程ID) on delete cascade on update cascade);