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

      昨天在自己做的一个系统中使用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后,子表创建成功。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
MySQL,数据关联关系有三种:多对一关系,一对一关系和多对多关系。 在多对一关系,一个实体可以对应多个另一个实体的实例,而另一个实体的实例只能对应一个实体的实例。例如,在学生和班级之间的关系,一个班级可以有多个学生,但一个学生只能属于一个班级。 在一对一关系,一个实体的实例只能对应另一个实体的实例,而另一个实体的实例也只能对应一个实体的实例。例如,一个人和身份证之间的关系就是一对一的关系。 在多对多关系,一个实体的实例可以对应多个另一个实体的实例,而另一个实体的实例也可以对应多个实体的实例。例如,在学生和课程之间的关系,一个学生可以选修多门课程,而一门课程也可以被多个学生选择。 以上是MySQL常见的关联关系,根据实际需求和设计,可以选择适合的关联关系建立数据之间的关系。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [MySQL关联关系](https://blog.csdn.net/lk142500/article/details/83686291)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值