2014-12-03 68 views
0

我已经看过一些类似这个问题的其他问题,但没有任何运气。我试图从博客表中删除整个外键列。它也链接到我的学生表中的主键。如何删除此外键列?

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 
+0

可能重复[MySQL删除一些外键](http://stackoverflow.com/questions/838354/mysql-removing-some-foreign-keys)。基本上,你需要实际约束_name_,而不是影响哪个列 – 2014-12-03 17:44:17

+0

但我不知道约束名称... – Tator 2014-12-03 18:02:25

+0

链接副本告诉你如何找到约束名称。 – 2014-12-03 18:03:34

回答

0

试试这个SQL:

alter table blogs drop foreign key keyconstraint // for you it will be `blogs_ibfk_1` i think 

如果你有滴速国外constraind使用的任何问题:

show create table blogs 

在这里你可以看到创建的前景点击关键约束名称。然后在sql中使用它

+0

@Tator使用我已发布的show sql来了解约束名称。 – 2014-12-03 18:04:53

+0

您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,以便在第1行 – Tator 2014-12-03 18:10:23

+0

附近的'//表名'处使用正确的语法,您需要使用:show create table blogs – 2014-12-03 18:11:08