注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

阿飘的博客

十里平湖霜满天 寸寸青丝愁华年

 
 
 

日志

 
 

mysql 外键  

2009-09-14 15:16:33|  分类: mysql |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
外键的作用
保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。 使两张表形成关联,外键只能引用外表中的列的值
如何设置外键
1)要设置外键, 必须在两个相关联的表的 对应的字段都设置索引(Index)
并且,外键必须是外表主键
为了建立两个MySQL表之间的一个外键关系,必须满足以下三种情况:
* 两个表必须是InnoDB表类型。
* 使用在外键关系的域必须为索引型(Index)。
* 使用在外键关系的域必须与数据类型相似。
InnoDB 是 MySQL 上第一个提供外键约束的引擎,除了提供事务处理外,InnoDB 还支持行锁,提供和 Oracle 一样的一致性的不加锁读取,能增加并发读的用户数量并提高性能,不会增加锁的数量。也就是说如果要采用外键约束,表类型必须时InnoDB,mysql默认是MyISAM,这种类型不支持外键约束。
2)然后
ALTER TABLE t1 ADD CONSTRAINT fk_type
FOREIGN KEY (type)
REFERENCES t2 (type);
这样,就 为t1表的type字段设置外键fk_type,这个外键的约束来自t2表的type字段
建立了外键之后,如果往表t1里 添加记录时,type字段的值,不在t2的type字段所给出的范围内,就会报错。
并且,只有在t1表中没有某一个type记录后,才能在t2表中删除该type所在的记录
3)在创建外键时,可以用
ON UPDATE CASCADE参数来设置自动更新关联
ON DELETE CASCADE 设置自动删除

使用distinct或者group by在mysql中查询多条不重复记录

SELECT `number` , `catalogue` , count( DISTINCT `catalogue` )
FROM `object`
GROUP BY `catalogue`
  评论这张
 
阅读(763)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017