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从表中删除所有索引-我说过我要从表中删除所有索引?