SQL 查询: ALTER TABLE `depart` DROP INDEX `users_depart_fk_manager` MySQL 返回: #1025 - Error on rename of '.\usermanager\#sql-dac_a' to '.\usermanager\depart' (errno: 150) 

解决方案 »

  1.   

    DROP INDEX users_depart_fk_manager  on depart
      

  2.   

    好像说是MySQL的一个bug,可以上网去搜搜。
      

  3.   

    直接DROP INDEX `users_depart_fk_manager`  
      

  4.   

    我测试是可以的:mysql> create table ine(a int ,index ind(a));
    Query OK, 0 rows affected (0.06 sec)mysql> drop index ind on ine;
    Query OK, 0 rows affected (0.16 sec)
    Records: 0  Duplicates: 0  Warnings: 0mysql> show create table ine;
    +-------+-----------------------------------------------------
    | Table | Create Table
    +-------+-----------------------------------------------------
    | ine   | CREATE TABLE `ine` (
      `a` int(11) DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
    +-------+-----------------------------------------------------
    1 row in set (0.05 sec)
      

  5.   

    DROP INDEX users_depart_fk_manager on depart
    对,就是这么删的,测试成功 你再试下!
      

  6.   

    C:\Users\coolwind>perror 150
    MySQL error code 150: Foreign key constraint is incorrectly formed看起来您这个外键有问题!您可以建立一个新表depart_new结构和depart一样(除了索引users_depart_fk_manager哈)
    # 插入数据
    insert into depart_new select * from depart;
    # 修改表名
    rename tablet depart to depart_old,depart_new to depart;
      

  7.   

    如果还不行,您就要检查一下是否有其他表的外键还引用这个表的!
    或者先关闭一下外键检查,再执行上面的哈!
    set foreign_key_checks=off;