2014-12-24 237 views
0

当我尝试删除其他表的外键列时出现问题。列是由错误创建的。从MySQL中删除外键

First table 'users' with Columns 'ID (Primary key)','user_rest_id(Foreign key)' 
Second table 'rest' with Columns 'ID (Primary key)','user_id(Foreign key)' 

我正在尝试删除'user_rest_id'列。我创建它是由一个错误,它与表'休息''ID'连接。

柱上下降:

#1553 - 无法删除索引 'user_rest_id':在一个外键约束需要。

当我尝试删除外键,它说:

#1091 - 无法DROP 'user_rest_id';检查列/密钥是否存在

+0

您可能需要确定与'user_rest_id'上的外键相对应的约束名称,并使用该名称删除FK约束,然后才能删除列。由于您的大纲模式不记录FK引用哪些表中的哪些列,所以我并不完全确定您得到了多少混乱。可能是您从用户到休息以及从休息到用户都有一个FK。 –

+0

正如你所说。我错误地创造了它。 'user_rest_id'应该只是简单的列,而不是外键。 – WilsonG

回答

1

假设您已经使用约束创建了外键。

ALTER TABLE users 
DROP FOREIGN KEY fk_users; //Your actual constraint name 

希望这有助于。

+0

感谢您的回答。 – WilsonG

+0

欢迎....... :) –