MariaDB Quick -Tip#8-所有外国密钥限制
#sql #mysql #mariadb

Mariadb提示和技巧

这是我一年中积累的一系列快速提示和技巧的一部分,我认为这对他人很有用。
如果您有类似的简短提示和技巧,请发表评论。

所有外国钥匙限制

设计良好的数据库使用外国密钥关系将其表彼此联系起来,以确保数据完整性。但是,当数据库具有数百甚至数千个表时,找到与您可能必须修改的特定表相关的所有表可能是一个巨大的挑战。
下面的查询将找到具有特定列名的列之间的所有外键约束。

SET @DatabaseName := 'test_db';
SET @ColumnName := 'dept_no';

SELECT concat(rc.unique_constraint_schema, '.', rc.referenced_table_name) AS `Primary table`,
       concat(rc.constraint_schema, '.', rc.table_name) AS `Foreign table`, 
       rc.constraint_name AS `Constraint name`
  FROM information_schema.referential_constraints rc
  JOIN information_schema.key_column_usage cu ON rc.constraint_schema = cu.table_schema 
       AND rc.table_name = cu.table_name
       AND rc.constraint_name = cu.constraint_name
 WHERE rc.constraint_schema = @DatabaseName
   AND cu.COLUMN_NAME = @ColumnName
 ORDER BY rc.constraint_schema,
       rc.table_name;

DBeaver screenshot