mysql 如何保证数据完整性 -- 笔记

mysql 约束和索引 
相同点: 保证证数据的完整性
区别: 索引是从数据结构的角度来保证数据完整性, 而 约束是一个逻辑概念,用来保证数据完整性.

保证数据完整性的方法:

一. 对错误数据的约束
   设置sql_mode 为 严格模式, 来提示报错而不是警告
    服务器配置: my.cnf sql_mode ='STRICT_TRANS_TABLES' ; 
    客户端 使用 : set   sql_mode = 'STRICT_TRANS_TABLES' ;
    比如在非严格模式下, 对字段已设置为not null  , 插入了 非法日期的值: 比如 2009-02-30.

二. ENUM 和 SET 约束(针对数据类型).
    比如假设 性别 只允许两种, male, female.  enum('male', 'female'), 也可以 enum(0, 1). 如果设置为 tinyint(1), 值就可以存在 0-9.
     
三. 触发器约束
    通过创建触发器来过滤错误的数据.一般用在字读间的计算.
      
四.外键
     InnoDB支持外键, 可以通过外键来保证数据的完整性. 比如 一个用户表, 对应有张子表来存储一些额外的信息,
子表通过外键就可以达到只要主表有 delete 和 update 的操作,对于的数据也会 delete 和 update.
MyISAM 表不支持外键,可以只用 触发器来控制数据完整性.

    
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值