无法在MySql中删除外键列

时间:2018-03-13 07:06:38

标签: mysql

我在表格中添加了一列(下面的查询)

ALTER TABLE `acct_doc_item_data`
ADD fk_job_id INT(11), 
ADD FOREIGN KEY (fk_job_id) REFERENCES `job`(`job_id`);

现在我要删除此列(fk_job_id)。我尝试了这些查询,但他们给出了错误。

ALTER TABLE `acct_doc_item_data` DROP FOREIGN KEY `fk_job_id`;
ALTER TABLE `acct_doc_item_data` DROP COLUMN `fk_job_id`;

第一个Alter语句将错误标记为 - Can't DROP 'fk_job_id'; check that column/key exists(但该列存在)。

2nd Alter语句将错误标记为 - Cannot drop index 'fk_job_id': needed in a foreign key constraint

2 个答案:

答案 0 :(得分:1)

首先删除外键约束,然后删除列

例如:

alter table table_name drop constraint constraint_name


alter table table_name drop column column_name

获取约束名称使用此

SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE TABLE_NAME='YourTableName';

答案 1 :(得分:0)

在我的情况下(phpmyadmin和Mysql InnoDB),您不能仅仅这样做:

alter table table_name drop constraint constraint_name

因为它为数据库“ information_schema”赋予根“拒绝访问”

但是我可以转到“结构”选项卡->“关系”视图,然后从其中删除所需的fk

相关主题:How to remove constraints from my MySQL table?