急建立两个表,其中一个表中的type_id对应另外一个表的主键id。总是提示
Error Code: 1005
Can't create table 'aclome_css.#sql-874_52' (errno: 150)
排除的原因:
两个字段的类型或者大小不严格匹配
你试图引用的其中一个外键没有建立起索引,或者不是一个primary key , 如果其中一个不是primary key 的放,你必须为它创建一个索引。
必须是InnoDB引擎
找不到主表中 引用的列
主键和外键的字符编码不一致这些都没有问题。表中的字段连接到本身主键为外键则可以。
求解
谢谢各位大神了。

解决方案 »

  1.   

    楼主至少应该贴出相应的create table 语句吧。问题说明越详细,回答也会越准确!参见如何提问。(提问的智慧
      

  2.   

    用sqlyog连接的,所以不用自己写sql语句。
    原因基本定位了:是database和table的编码不同的问题。修改编码后解决了大部分问题,但是还有一个外键没有建立成功。
    谢谢你们了。
      

  3.   

    建表SQL语句、建立外键的SQL语句是什么,建议用代码建立外键
      

  4.   


    刚接触数据库,所以直接用客户端软件。以后肯定自己写语句了,毕竟客户端软件也存在bug。
    谢谢了。
      

  5.   


    没有成功的也解决了,还是编码的问题。虽然两个表都采用了utf8,但是具体的collation还需要配置成一样的。