zoukankan      html  css  js  c++  java
  • mysql --->mysql 外键总结

    mysql 外键总结

    • 1.设置外键MySQL ERROR 1005 错误
      MySQL ERROR 1005 (主要是约束不一样导致的)例如:
      1、两表外键的引用类型不一样,如主键是int外键是char,字段长度
      2、两表主键和外键的字符编码不一致,也可能存储引擎不一样,支持外键的存储引擎是innodb

    • 2.MySQL外键约束删除时和更新时各取值的含义
      MySQL支持外键的存储引擎只有InnoDB,在创建外键的时候,要求父表必须有对应的索引,子表在创建外键的时候也会自动创建对应的索引。在创建索引的时候,可以指定在删除、更新父表时,对子表进行的相应操作,包括RESTRICT、NO ACTION、SET NULL和CASCADE。其中RESTRICT和NO ACTION相同,是指在子表有关联记录的情况下父表不能更新;CASCADE表示父表在更新或者删除时,更新或者删除子表对应记录;SET NULL则是表示父表在更新或者删除的时候,子表的对应字段被SET NULL。

    -3.因为只有InnoDB引擎才允许使用外键,所以,我们的数据表必须使用InnoDB引擎。

    4.如果主从表只是普通的外键约束,则在更新/删除主表记录时,需要先更新/删除从表记录,否则将会报外键约束异常,导致操作失败,如下:

     Cannot delete or update a parent row: a foreign key constraint fails (`test`.`goods`, CONSTRAINT `goods_ibfk_1` FOREIGN KEY (`shop_id`) REFERENCES `shop` (`id`))
    
  • 相关阅读:
    Jessica's Reading Problem POJ
    FatMouse and Cheese HDU
    How many ways HDU
    Humble Numbers HDU
    Doing Homework again
    Stacks of Flapjacks UVA
    Party Games UVA
    24. 两两交换链表中的节点
    面试题 03.04. 化栈为队
    999. 可以被一步捕获的棋子数
  • 原文地址:https://www.cnblogs.com/frankltf/p/8616630.html
Copyright © 2011-2022 走看看