【问题标题】:how to delete foreign key in mysql如何删除mysql中的外键
【发布时间】:2017-03-06 02:12:55
【问题描述】:

我正在使用 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

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

【问题讨论】:

  • 错误是什么?
  • @GoudaElalfy #1553 - 无法删除索引“user_id”:在外键约束中需要
  • @Marco 演出,#1091 - Can't DROP 'user_id'; check that column/key exists
  • 你不应该删除 user_id 而是 fk_users_xxxx_user_id,但你必须知道你将能够为不存在的用户创建文章

标签: php mysql database phpmyadmin


【解决方案1】:

试试这个,

ALTER TABLE `xxxx`
DROP FOREIGN KEY'fk_users_xxxx_user_id'

【讨论】:

  • select TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME,REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME from INFORMATION_SCHEMA.KEY_COLUMN_USAGE where REFERENCED_TABLE_NAME = '';您可以使用此语法来了解外键名称。然后尝试放下。
  • REFERENCED_TABLE_NAME 是什么意思??
  • 外键引用的表。在您的情况下,它是“用户”。
猜你喜欢
  • 2020-06-23
  • 2015-06-16
  • 2015-02-22
  • 2012-01-10
  • 1970-01-01
  • 2014-08-03
  • 2020-06-04
  • 1970-01-01
  • 2022-08-14
相关资源
最近更新 更多