外键约束的要求

1,父表和子表必须使用相同的存储引擎,而且禁止使用临时表.

 

2,  数据表的存储引擎只能为InnoDB.

 

3, 外键列和参照列必须具有相似的数据类型,其中数字的长度或是否有符号位必须相同;而字符的长度则可以不同

 

4, 外键列和参照列必须创建索引.如果外键列不存在索引的话,mysql将自动创建索引.

 

例如 以下创建外键的 表

CERATE  TABLE provinces(

id SMALLINT(5) UNSIGNED PRIMARY KEY AUTO_INCREMENT,

pname VARCHAR(20) NOT NULL,

)

 

 

CREATE TABLE users(
id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(20) NOT NULL,
pid SMALLINT(5) UNSIGNED ,
FOREIGN KEY (pid) REFERENCES provinces (id)

)

user表中的 pid 就是外键,需要和子表的 provinces中的 id 字段配置一致,不然会报错

语法为  FOREIGN KEY (pid) REFERENCES provinces (id)

 

 

上一篇:构建可以理解的T-SQL


下一篇:时间维度表