我需要检查模式上的外键约束。我需要表名,列名,引用的模式,引用的表和引用的列。 Google搜索告诉我,我可以使用information_schema执行此操作。我对这种方法有些怀疑。
是否有其他方法可以检查外键约束?使用SHOW CREATE TABLE和比较查询似乎不是一个好主意。
我的应用程序将使用C#(Connector:ODBC)编码。我知道有一个.NET MySQL连接器为getschema方法提供了外键列集合(http://dev.mysql.com/doc/refman/5.0/en/connector-net-programming-connecting-connection-string。 HTML#连接网编程-的getSchema)。有谁知道它是否也使用了information_schema?
我真的可以在这里使用一些帮助。
此致
答案 0 :(得分:1)
信息架构是否可靠?
如果不是,那么您的数据库也不是。 (提示:it isn't)。
考虑到information_schema是一个系统数据库,包含有关所有数据库的信息,任何查询都需要相当长的时间。正确?
这取决于你如何查询它们。请尝试show indexes
查看可用的索引。
是否有其他方法可以检查外键约束?使用SHOW CREATE TABLE和比较查询似乎不是一个好主意。
理论上,show create table
以稍微不同的方式查询information_schema。
在实践中,并进一步引用第二个链接,两者之间返回的一些信息可能不一致:
create table rolando (num int not null, primary key (num) using hash);
mysql> show create table rolando\G
(...)
PRIMARY KEY (`num`) USING HASH
mysql> show indexes from rolando;
(...) | Index_type | (...)
(...) | BTREE | (...)
最后,请参阅:
Is querying the MySQL information_schema database a good way to find related tables?