外键约束怎么写

MySQL 外键管束(FOREIGN 外键管束要怎么写KEY)是表的一个独特字段名 , 常常与主键管束一起应用 。针对2个具备关联方交易的表来讲 , 关联字段名中主键所属的表便是主表(父表) , 外键所属的表就是以表(子表) 。
外键用于创建主表与从表的关联方交易 , 为2个表的数据信息创建联接 , 管束2个表中数据的一致性和一致性 。例如 , 一个水果店 , 仅有iPhone、水蜜桃、李子果、甜瓜等 4 种水果 , 那麼 , 你赶到水果店要买蔬果就只有挑选iPhone、水蜜桃、李子果和甜瓜 , 其他的新鲜水果全是不可以选购的 。
主表删掉某条纪录时 , 从表格中与之相匹配的纪录也务必有相对的更改 。一个表能够有一个或好几个外键 , 外键能够为空值 , 若不以空值 , 则每一个外键的值务必相当于主表中主键的某一值 。


外键约束怎么写

文章插图
界定外键时 , 必须遵循下述标准:
主表务必早已存有于数据库查询中 , 或是是当今已经建立的表 。如果是后一种状况 , 则主表与从表有同一个表 , 那样的表称之为自参考表 , 这类构造称之为自参考一致性 。
务必为主表界定主键 。
主键不可以包括空值 , 但容许在外键中出現空值 。换句话说 , 只需外键的每一个非空值出現在特定的主键中 , 这一外键的內容便是恰当的 。
在主表的表名后边特定字段名或字段名的组成 。这一列或列的组成务必是主表的主键或备选键 。
外键中列的数量务必和主表的主键中列的数量同样 。
外键中列的基本数据类型务必和主表主键中相匹配列的基本数据类型同样 。
在 CREATE TABLE 句子中 , 根据 FOREIGN KEY 关键词来特定外键 , 实际的英语的语法文件格式以下:
例 1
为了更好地呈现表与表中间的外键关联 , 本例在 test_db 数据库查询中建立一个单位表 tb_dept1 , 表结构以下表所示 。
字段称
基本数据类型
备注名称
id
INT(11)
单位序号
name
外键管束要怎么写 VARCHAR(22)
部门名称
location
VARCHAR(22)
单位部位
建立 tb_dept1 的 SQL 句子和运作結果以下所示 。
建立数据分析表 tb_emp6 , 并在表 tb_emp6 上建立外键管束 , 让它的键 deptId 做为外键关系到表 tb_dept1 的主键 id , SQL 句子和运作結果以下所示 。
之上句子实行取得成功以后 , 在表 tb_emp6 上加上了名字为 fk_emp_dept1 的外键管束 , 外键名字为 deptId , 其取决于表 tb_dept1 的主键 id 。
留意:从表的外键关系的务必是主表的主键 , 且主键和外键的基本数据类型务必一致 。比如 , 二者全是 INT 种类 , 或是全是 CHAR 种类 。假如不符合那样的规定 , 在建立从表时 , 便会出現“ERROR 1005(HY000): Can't create table”不正确 。
外键管束还可以在改动表时加上 , 可是加上外键管束的前提条件是:从表格中外键列中的数据信息务必与主表中主键列中的数据信息一致或是是沒有数据信息 。
在改动数据分析表时加上外键管束的英语的语法文件格式以下:
例 2
改动数据分析表 tb_emp2 , 将字段名 deptId 设定为外键 , 与数据分析表 tb_dept1 的主键 id 开展关系 , SQL 句子和运作結果以下所示 。
留意:在为早已建立好的数据分析表加上外键管束时 , 要保证加上外键管束的列的值所有来自主键列 , 而且外键列不可以为空 。
当一个表格中不用外键管束时 , 就必须从表里将其删掉 。外键一旦删掉 , 便会消除主表和从表间的关联方交易 。
删掉外键管束的英语的语法文件格式以下所示:
例 3
删掉数据分析表 tb_emp2 中的外键管束 fk_tb_dept1 , SQL 句子和运作結果以下所示 。
【外键约束怎么写】能够见到 , tb_emp2 中早已不会有 FOREIGN KEY , 原来的名字为 fk_emp_dept 的外键管束删掉取得成功 。