您的位置:首页 > 数据库 > MySQL

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

2014-09-28 20:51 507 查看
创建数据表,观察其引擎: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的教学
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: