2016-10-24 107 views
0

我正在使用mysql并试图删除外部约束,但我无法删除该键。如何删除mysql中的外键

SHOW CREATE TABLE xxxx; 

它的展示,

CREATE TABLE `xxxx` (
`id` int(11) NOT NULL AUTO_INCREMENT, 
`user_id` int(11) NOT NULL, 
`name` text NOT NULL, 
`article_title` text NOT NULL, 
`created_at` datetime NOT NULL, 
`last_modified_at` datetime NOT NULL, 
`latest_version` tinyint(4) NOT NULL, 
`status` tinyint(4) NOT NULL, 
`is_deleted` enum('0','1') NOT NULL, 
`deleted_time` datetime NOT NULL, 
`manual_authorgroup_data` text NOT NULL, 
PRIMARY KEY (`id`), 
KEY `user_id` (`user_id`), 
CONSTRAINT `fk_users_xxxx_user_id` FOREIGN KEY (`user_id`) REFERENCES `users` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE 
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=latin1 

如何来解决这个问题,请帮助我。

+4

http://stackoverflow.com/questions/14122031/how-to-remove-constraints-from-my-mysql-table – Marco

+0

什么错误? –

+0

@GoudaElalfy#1553 - 无法删除索引'user_id':在外键约束中需要 –

回答

1

试试这个,

ALTER TABLE `xxxx` 
DROP FOREIGN KEY'fk_users_xxxx_user_id' 
+0

你是对的,但不为我工作,请参阅上面的评论... –

+0

select TABLE_NAME,来自INFORMATION_SCHEMA.KEY_COLUMN_USAGE的CONSUMER_NAME,CONSTRAINT_NAME,REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME其中REFERENCED_TABLE_NAME ='

';您可以使用此语法来了解外键名称。然后尝试放下。 – suguna

+0

REFERENCED_TABLE_NAME的意思是? –