回顾总结:1、约束:分为表级约束和列级约束
2、非空约束,主键约束,默认约束,唯一约束
新:1、外键约束
1)父表和子表使用相同的存储引擎,禁止使用临时表
2)存储引擎必须是InnoDB
3)外键列和参照列必须有相似的数据类型,数字的长度和有无符号必须相同,字符的长度可以不同。
3)外键列和参照列必须有索引,外键列没有索引,mysql自动创建索引(参照列没有索引则不会)
//创建了一个province父表
CREATE TABLE province(
id SMALLINT UNSIGNED PRIMARYKEY AOTU_INCREMENT,
name VARCHAR(20)
);
//创建外键约束语法如下
CREATE TABLE user1(
id SAMLLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(20),
pid SMALLINT UNSIGNED,
FOREIGN KEY (p<span style="font-family: Arial, Helvetica, sans-serif;">id) REFERENCES province (id</span><span style="font-family: Arial, Helvetica, sans-serif;">));</span>
在创建外键约束同时可以加一些操作,即“父表删除更新也同时删除更新子表中对应的行”
CREATE TABLE user1(
id SAMLLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(20),
pid SMALLINT UNSIGNED,
FOREIGN KEY (pid) REFERENCES province (id) ON DELETE CASCADE
);
2、添加约束,表已建好后再对某一列添加约束
ALTER TABLE users2 ADD PRIMARY KEY(id);