列在那里,但是当我尝试删除它时,说MYSQL中没有列? **错误代码:1091.无法删除... ** [英] Column is there, but when I try to delete it says no column in MYSQL? **Error Code: 1091. Can't DROP...**

查看:994
本文介绍了列在那里,但是当我尝试删除它时,说MYSQL中没有列? **错误代码:1091.无法删除... **的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试运行以下查询:

ALTER TABLE ORDER_DETAIL DROP foreign key USER_ID;

它说:

Error Code: 1091. Can't DROP 'USER_ID'; check that column/key exists

当我跑步时:

ALTER TABLE ORDER_DETAIL DROP COLUMN USER_ID

它说:

Error Code: 1553. Cannot drop index 'USER_ID': needed in a foreign key constraint   0.098 sec

但是当我跑步时:

desc ORDER_DETAIL;

我得到:

Field,Type,Null,Key,Default,Extra
ORDER_ID,int(11),NO,PRI,NULL,
USER_ID,int(11),NO,MUL,NULL,
ORDER_DATE,date,YES,,NULL,

有人可以解释这里有什么问题以及如何解决吗?

Can anybody explain what is wrong here and how to fix it?

推荐答案

由于MySQL为外键创建了索引,因此直接尝试删除外键是行不通的.因此,此处提供的答案无效.

Since MySQL creates an index for the foreign keys so directly trying to drop the foreign key does not work. So the answers provided here does not work.

最适合我的sql查询是:

The right sql query that worked for me is this:

ALTER TABLE ORDER_DETAIL DROP FOREIGN KEY ORDER_DETAIL_ibfk_1;

这里要注意的重要事项是_ibfk_1

The important thing to notice here is _ibfk_1

只有在那之后,我才能使用以下内容删除该列:

And only after that I could drop the column by using:

ALTER TABLE ORDER_DETAIL DROP COLUMN USER_ID;

这篇关于列在那里,但是当我尝试删除它时,说MYSQL中没有列? **错误代码:1091.无法删除... **的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆