我在表格中添加了一列(下面的查询)
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
答案 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