mysql-外键约束(创建一个简单的例子)

  约束
约束保证数据的完整性和一致性;
约束分为表级约束和列级约束,如果约束只针对某一个字段使用,那么就称列级约束;
如果约束针对两个或以上字段,称为表级约束。
按功能来分则分为:非空约束,主键约束,唯一约束,默认约束,外键约束



 FOREIGN KEYp: 外键约束,保持数据一致性,完整性。实现一对一或一对多关系。


 外键约束的要求
1,父表和子表必须使用相同的存储引擎,而且禁止使用临时表。(父表:子表所参照的表子表:具有外键列的表)

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

3.外键列和参照列必须具有相似的数据类型。其中数字的长度或是否有符号位必须相同;而字符的长度则可以不同。( 外键列:曾经加过FOREIGN KEYp的列,参照列:外键列所参照的列称为参照列)

4,外键列和参展列必须创建索引。如果外键列不存在索引的话,mysql将自动创建索引 。( 如果参照列不存在索引的话,mysql不会自动创建索引。但如果参照列为主键的话,则会自动创建索引。主键在创建的同时会自动创建索引,所以参照列其实已经有了索引。而外键列上没有创建索引,mysql则会自动创建索引。)


一个简单的外键例子
先创建一个provinces表:


查看存储引擎是否是InnoDB:


再创建一个子表users:


这样一个简单的例子就完成了。
其中 users表为子表,(有外键表就称为子表),子表所参照的表provinces表为父表。
users表中的pid称为外键列,provinces表中的id称为参照列

最后查看是否创建索引:

这是查看provinces表是否创建索引,想要查看users表也是同理,把provinces改为users就好
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值