zoukankan      html  css  js  c++  java
  • MySQL创建外键约束的报错Error : Can't create table '#sql-534_185' (errno: 150)

    总得来说是因为两个表的字段类型不一致,例如:

    1. 两个字段的类型或大小不严格匹配,一个为tinyint,另一个为char;或一个为int(10)另一个为int(9)也是不行的,即使都为int(10),但一个是有符号数,一个是无符号数也会报错。
    2. reference的另一个表的字段必须是主键或建立索引。
    3. 外键的名字有重复或与键值重复。
    4. 两个表必须都是用InnoDB引擎,事实上MyISAM引擎是不会产生外键的。
    5. 设置了ON DELETE SET NULL,但字段又设置为NOT NULL。
    6. 在这个关系里面,其中的一个字段是一个混合键值中的一个,它没有自己独立的索引,这时,你必须为它创建一个独立的索引。
    7. 主键和外键的字符编码不一致。例如一个是utf-8另一个是GBK。

    总的来说,就是两个字段有不一样的地方,不能建立外键约束。

    转载请保留原文链接及作者
    本文标题:
    文章作者: LepeCoder
    发布时间:
    原始链接:
  • 相关阅读:
    Linq to OBJECT延时标准查询操作符
    LINQ to XML
    动态Linq(结合反射)
    HDU 1242 dFS 找目标最短路
    HDu1241 DFS搜索
    hdu 1224 最长路
    BOJ 2773 第K个与m互质的数
    ZOJ 2562 反素数
    2016 ccpc 杭州赛区的总结
    bfs UESTC 381 Knight and Rook
  • 原文地址:https://www.cnblogs.com/lepeCoder/p/7230567.html
Copyright © 2011-2022 走看看