如何在MariaDB中选择所有外键
我对MS Sql Server有以下查询:如何在MariaDB中选择所有外键,mariadb,Mariadb,我对MS Sql Server有以下查询: SELECT DISTINCT OnTable.name as OnTable, AgainstTable.name as AgainstTable FROM sysforeignkeys fk INNER JOIN sysobjects onTable ON fk.fkeyid = onTable.id INNER JOIN
SELECT DISTINCT
OnTable.name as OnTable,
AgainstTable.name as AgainstTable
FROM sysforeignkeys fk
INNER JOIN sysobjects onTable ON fk.fkeyid = onTable.id
INNER JOIN sysobjects againstTable ON fk.rkeyid = againstTable.id
现在我需要在MariaDB中创建一个等价的查询。基本上,我需要知道MariaDB中哪些表可以替换sysforeignkey和sysobjects?这里:
select
fk.constraint_name,
c.ordinal_position,
c.table_schema,
c.table_name,
c.column_name,
c.referenced_table_schema,
c.referenced_table_name,
c.referenced_column_name
from information_schema.table_constraints fk
join information_schema.key_column_usage c
on c.constraint_name = fk.constraint_name
where fk.constraint_type = 'FOREIGN KEY';
嗯,您的查询显示的细节较少。这是等效的一个:
select distinct
c.table_name,
c.referenced_table_name
from information_schema.table_constraints fk
join information_schema.key_column_usage c
on c.constraint_name = fk.constraint_name
where fk.constraint_type = 'FOREIGN KEY';
MariaDB的信息模式大致与sysobjects相关。但祝你好运。谢谢@RickJames,正如你提到的信息\u模式与sysobjects相关,我在文档中迷失了方向,找不到它,你在这里发布的链接帮了我很多,如果有新的MariaDB用户来到这里,这个链接有每一个信息\u模式表。@WesleySilva-是的,MariaDB页面很好。如果您在查找MariaDB页面时遇到困难,您可以在MySQL中查找-有时他们的页面更容易找到和/或更详细;通常他们有相同的信息。