怎么样删除外键order_id
alter table orderitem foreign key (order_id);
使用该语句显示无效 alter table 选项
alter table orderitem drop foreign key
该回答引用ChatGPT4与博主@晓码自在合作编写:
删除外键的SQL语句正确格式如下:
sql
ALTER TABLE orderitem
DROP CONSTRAINT fk_orderitem_order_id;
其中:
所以整个语句为:
sql
ALTER TABLE orderitem
DROP CONSTRAINT fk_orderitem_order_id;
执行此语句后,orderitem表的order_id外键约束将被删除。
您的语句:
sql
alter table orderitem foreign key (order_id);
是错误的,正确的语法应为:
sql
ALTER TABLE table_name
DROP {CONSTRAINT | FOREIGN KEY} constraint_name
需要指定DROP子句,以及CONSTRAINT关键字或者FOREIGN KEY关键字和约束名称。
而您的语句缺少DROP子句和约束名称,所以解析器无法识别,会报语法错误。
所以,正确删除orderitem表的order_id外键,请执行语句:
sql
ALTER TABLE orderitem
DROP CONSTRAINT fk_orderitem_order_id;
之后,orderitem表的order_id字段就不再强制引用orders表的order_id主键,实现外键约束的删除。
请执行正确的SQL语句,并验证orderitem表的order_id字段是否还具有外键特性以确认是否成功。
查询系统的主外键,再看名字是啥
select a.constraint_name, a.table_name, b.constraint_name
from user_constraints a, user_constraints b
where a.constraint_type = 'R'
and b.constraint_type = 'P'
and a.r_constraint_name = b.constraint_name
;
select *
from user_constraints where constraint_type='R';