下面的命令获取给定数据库模式中的所有外键查询,但它也响应一些重复的外键,所以请告诉我,有人,如何克服这个问题,并请给出一个独特选项的示例。
SELECT SchemaName, GROUP_CONCAT(DropQuery SEPARATOR ';\n') as DropQuery
FROM
(SELECT
KCU.REFERENCED_TABLE_SCHEMA as SchemaName,
KCU.TABLE_NAME,
KCU.COLUMN_NAME,
CONCAT('ALTER TABLE ', KCU.TABLE_NAME, ' DROP FOREIGN KEY ', KCU.CONSTRAINT_NAME) AS DropQuery
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE KCU, information_schema.REFERENTIAL_CONSTRAINTS RC
WHERE
KCU.CONSTRAINT_NAME = RC.CONSTRAINT_NAME
AND KCU.REFERENCED_TABLE_SCHEMA = RC.UNIQUE_CONSTRAINT_SCHEMA
AND KCU.REFERENCED_TABLE_SCHEMA = 'jtrac') Queries
GROUP BY SchemaName;
1条答案
按热度按时间jvlzgdj91#
在没有看到你的数据的情况下,这个答案有点推测性。如果问题是给定的模式名可以具有相同的
DropQuery
值作为csv输出出现多次,然后我们可以尝试使用GROUP_CONCAT
与DISTINCT
: