MySql数据库的基本操作-表数据中的 设置外键约束

创建数据表,观察其引擎:show create table provinces;

ENGINE=InnoDB 证明,引擎为InnoDB引擎。


创建三次才成功,如果是数字,数据类型必须一致:


 create table provinces(

    -> id smallint unsigned primary key auto_increment,

    -> pname varchar(20) not null

    -> );

create table users(                                                           

    -> id smallint unsigned primary key auto_increment,

    -> username varchar(10) not null,

    -> pid smallint unsigned,

    -> foreign key (pid) references provinces (id)                                 

    -> ); 

当前父表是provinces,子表是users(设置了外键 foreign key),引擎必须都是InnoDB。

外键列,即子表中的pid;参照列,即父表中的id,必须具有相同(或相似)的数据类型。

所以最后一句:foreign key(pid) references provinces (id

可以理解为:外键(pid)参照 表provinces 的键(id)。


主键必须创建索引,输入观察:show indexes from provinces;show indexes from provinces\G;

显然,在id这里已经创建了索引。



那么在表users中,是否也有索引呢?show indexes from users\G;

可以看到:Column_name: id

Column_name: pid

pid是系统自动加了索引。




mac终端进入mysql:/usr/local/mysql/bin/mysql

http://www.imooc.com   来自iMooc的教学

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

limaning

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值