Mysql 如何删除此外键列?

Mysql 如何删除此外键列?,mysql,Mysql,我看过其他一些类似的问题,但没有任何运气。我试图从blogs表中删除整个外键列。它也链接到my students表中的主键 Create table students ( studentid integer primary key NOT NULL, ulid varchar(20) NOT NULL, password varchar(20) NOT NULL, email varchar(50) NOT NULL ) Create table blogs ( blogid integer

我看过其他一些类似的问题,但没有任何运气。我试图从blogs表中删除整个外键列。它也链接到my students表中的主键

Create table students
(
studentid integer primary key NOT NULL,
ulid varchar(20) NOT NULL,
password varchar(20) NOT NULL,
email varchar(50) NOT NULL
)

Create table blogs
(
blogid integer primary key NOT NULL,
blogdate date NOT NULL,
title varchar(50) NOT NULL,
description varchar(8000) NOT NULL,
category varchar (50) NOT NULL,
studentid integer NOT NULL,
foreign key (studentid) references students (studentid)
)
我试过了,但没用

alter table blogs drop column studentid

alter table blogs drop constraint studentid

alter table blogs drop foreign key studentid
尝试以下sql:

alter table blogs drop foreign key keyconstraint   // for you it will be `blogs_ibfk_1` i think
如果您在删除外部约束使用时遇到任何问题:

show create table blogs

在这里可以看到创建的外键约束名称。然后在sql中使用它

可能重复的。基本上,您需要的是实际的约束名称,而不是它影响的列,但我不知道约束名称……链接的副本告诉您如何查找约束名称。@t或者如果表中只有一个外键,则它通常类似于tablename\u ibfk\u 1。对你来说,这将是一个博客_1@Tator使用我发布的showsql来了解约束名称;检查与MySQL服务器版本对应的手册,了解第1行“//table name”附近使用的正确语法,当我这样做时,它显示CREATE table blogs blogid int11 NOT NULL AUTO_INCREMENT,blogdate NOT NULL,title varchar50 NOT NULL,description varchar8000 NOT NULL,category varchar50 NOT NULL,studentid int11非空,主键blogid,主键studentid studentid ENGINE=InnoDB AUTO_INCREMENT=6默认字符集=Latin1如果问题已解决,则您可以接受答案并关闭此主题。