有时候 创建表的时候,可能哪儿不小心 就提示1005  
 
看有些人说 主要是 关联外键时, 字段 长度,和约束都得一致, 我都一致了 
还是会提示1005  请教下 平常建表的时候, 哪些地方最容易出现1005 提示啊 ?  哪些地方该值得注意。

解决方案 »

  1.   

    表引擎是什么,贴两表的建表SQL
      

  2.   

    我怀疑是不是字符集的原因? 
    我这个字段的字符集 有两列 居然是gbk 怎么修改成统一的utf8呢
      

  3.   

    去掉这2列的字符集设置试试,贴2表的建表SQL文本
      

  4.   

    这是第一张,CREATE  TABLE login (
    username VARCHAR(20) PRIMARY KEY ,
    userpassword VARCHAR(20) NOT NULL,
    LEVEL TINYINT(4) NOT NULL,DEFAULT 0,
    POINT INT(11) DEFAULT 0,
    NAME VARCHAR(20) UNIQUE,
    dgtime DATETIME NOT NULL);准备建立的表CREATE TABLE images (
    image_id INT AUTO_INCREMENT PRIMARY KEY,
    image_user VARCHAR(20),
    image_path VARCHAR(30),
    FOREIGN KEY (image_user) REFERENCES login(username) ON DELETE CASCADE);
      

  5.   

    CREATE  TABLE login (
    username VARCHAR(20) PRIMARY KEY ,
    userpassword VARCHAR(20) NOT NULL,
    LEVEL TINYINT(4) NOT NULL DEFAULT 0,
    POINT INT(11) DEFAULT 0,
    NAME VARCHAR(20) UNIQUE,
    dgtime DATETIME NOT NULL);CREATE TABLE images (
    image_id INT AUTO_INCREMENT PRIMARY KEY,
    image_user VARCHAR(20),
    image_path VARCHAR(30),
    FOREIGN KEY (image_user) REFERENCES login(username) ON DELETE CASCADE);  
      

  6.   

    怎么修改 指定列的 字符集呢, 
    就是那那两个字段gbk 改成utf8
      

  7.   

    表已经建立了?
    ALTER TABLE login CONVERT TO CHARACTER SET utf8;
    or
    ALTER TABLE login CHANGE username username VARCHAR(20) CHARACTER SET utf8;
      

  8.   


    我大概知道我这个的原因了 ,就是因为login 这个表的那两个字符编码原因, login表已经创建好了,username 和 userpassword 字符是gbk   但表是utf8 的   而且还有另外一张表content里面的字段 也引用了这个login 里面的username  那张表也是gbk 所以可以关联成功,现在 就是 要把login和content 两张表里面的 gbk字符转为utf8
      

  9.   

    错误码: 1025
    Error on rename of '.\zly\#sql-5c8_1' to '.\zly\login' (errno: 150 - Foreign key constraint is incorrectly formed)Execution Time : 00:00:00:000
    Transfer Time  : 00:00:00:000
    Total Time     : 00:00:00:000
      

  10.   

    SET FOREIGN_KEY_CHECKS = 0;
    修改完后 
    SET FOREIGN_KEY_CHECKS = 1;