Mysql 尝试删除外键时出现错误#1064
我正试图从表Mysql 尝试删除外键时出现错误#1064,mysql,foreign-keys,Mysql,Foreign Keys,我正试图从表pcwithhw中删除外键。但它显示了错误:- :#1064-您的SQL语法有错误;检查与MySQL服务器版本相对应的手册,以了解第2行的“hw_serial_no”附近使用的正确语法 在查询之后,我正在尝试运行 alter table pcwithhw drop foreign key fk_`hw_serial_no`; 与问题相关的任何线索???前缀fk构成外键名称的一部分:因此必须将其包含在引号中,否则应完全删除引号。即: alter table pcwithhw drop
pcwithhw
中删除外键。但它显示了错误:-
:#1064-您的SQL语法有错误;检查与MySQL服务器版本相对应的手册,以了解第2行的“hw_serial_no”附近使用的正确语法
在查询之后,我正在尝试运行
alter table pcwithhw
drop foreign key fk_`hw_serial_no`;
与问题相关的任何线索???前缀
fk
构成外键名称的一部分:因此必须将其包含在引号中,否则应完全删除引号。即:
alter table pcwithhw
drop foreign key `fk_hw_serial_no`;
或
正如你所说的,在一个未引用的名字的中间出现了回退字符,这引起了你观察到的语法错误(MySQL将回退作为一个新的、无效的、令牌的开始)解析。 `fk_hw_序列号`
当我运行您建议的查询时,不使用backtick或也使用backtick for fk,然后出现以下错误:-1025-将“.\bl_pc_record\pcwithhw”重命名为“.\bl_pc_record\#sql2-19b0-17”时出错(错误号:152)这里的bl_pc_记录是我的database@NituDhaka:听起来好像没有名为
fk_hw_serial_no
的外键约束。外键是hw_serial_no。如果下一个解决方案是删除fk_。然后我也试过了。@NituDhaka:您是如何确定hw\u serial\u no
是外键约束的名称的(我建议查看SHOW CREATE TABLE pcwithhw
的输出-可能包括一份副本供我们查看)?
alter table pcwithhw
drop foreign key fk_hw_serial_no;