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

如何在mysql 中建立有关联关系的表

2007-08-13 11:03 246 查看
昨天在自己做的一个系统中使用mysql,折腾了半天始终无法建立外键,通过查找文档最终将问题解决,原来mysql中默认建立的表所使用的存储引擎为MyISAM类型,在这种类型的table中建立的外键只起到一个注释,提示的作用,对外键约束并无实际作用。要建立真正有意义的外键约束,需要建立类型存储引擎为INNODB类型的表。

如:

create table parent(id int(3),

name varchar(10)

)type=innodb;

create table children( id int(3) ,

name varchar(10) ,

parent_id int(3),

primary key(id),

index(parent_id), //为外键手工建立索引

foreign key(parent_id) references parent(id) on delete cascade

)type=innodb;

mysql中建立关联关系与oracle有所不同,在oracle中只要为字段建立外键即会自动为该字段建立索引,但是在mysql中必须手工为需要建立外键的字段手工建立索引,否则无法创建成功。

另外,我在建用户表是直接使用user作为表名,虽然该表创建成功,但是在其子表中建立与其关联的外键时无法创建成功,后来发现user为系统的关系字。将user表名改为user_info后,子表创建成功。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: