Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 使用子查询删除外键以获取其名称_Mysql - Fatal编程技术网

Mysql 使用子查询删除外键以获取其名称

Mysql 使用子查询删除外键以获取其名称,mysql,Mysql,我需要删除一个外键,但我不知道它的名称。 我不想从表中删除所有索引 我正试图通过下面的子查询来实现这一点 ALTER TABLE `onboarding_requests` DROP FOREIGN KEY (SELECT `CONSTRAINT_NAME` FROM `INFORMATION_SCHEMA.KEY_COLUMN_USAGE` WHERE `TABLE_NAME` = 'onboarding_requests' AND `COLUMN_NAME` = 'partner_

我需要删除一个外键,但我不知道它的名称。 我不想从表中删除所有索引

我正试图通过下面的子查询来实现这一点

ALTER TABLE `onboarding_requests`
  DROP FOREIGN KEY (SELECT `CONSTRAINT_NAME` FROM `INFORMATION_SCHEMA.KEY_COLUMN_USAGE` 
  WHERE `TABLE_NAME` = 'onboarding_requests' AND `COLUMN_NAME` = 'partner_responsible');
但它的回报是:

SQL错误1064:您的SQL语法有错误;检查 与右侧的MariaDB服务器版本相对应的手册 使用near“SELECT CONSTRAINT\u NAME FROM”的语法 信息\u SCHEMA.KEY\u列\u用法,其中第2行的“TABL”


不能在数据定义语句中使用变量替换。换句话说,您必须在DROP foreign key语句中给出外键的文字名称


如何克服SQL固有的局限性?顺便说一句,所有的SQL,不仅仅是MySQL,都禁止这样做。用你最喜欢的语言python编写一个小程序?php>从信息模式中检索数据实体的名称,然后使用字符串连接创建所需的数据定义语句

@juergend从入职请求返回一个resultTry SHOW索引返回6个结果。问题是我不想知道键的名称,我想让这个查询工作,而不管外键的名称。被juergen d标记为重复-这个问题在这里已经有了答案:mysql从表中删除所有索引-我说过我要从表中删除所有索引?