gpt4 book ai didi

c# - 检查外键约束 MySQL

转载 作者:行者123 更新时间:2023-11-29 03:12:21 25 4
gpt4 key购买 nike

我需要检查模式的外键约束。我需要表名、列名、引用模式、引用表和引用列。谷歌搜索告诉我,我可以使用 information_schema 来做到这一点。我对这种方法有些怀疑。

  1. 信息模式可靠吗?我有太多包含太多表的大型数据库,任何错误都会造成高昂的代价
  2. 考虑到 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#connector-net-programming-getschema)。有谁知道它是否也使用 information_schema?

我真的需要一些帮助。

问候,

最佳答案

Is the information schema reliable?

如果不是,则您的数据库也不是。 (提示:it isn't)。

Considering information_schema is a system database and contains info about all databases, any query will take considerably longer. Right?

这取决于您如何查询它们。尝试 show indexes 查看可用的索引。

Is there an alternate method to check foreign key constraints? Using SHOW CREATE TABLE and comparing queries does not seem to be a very good idea.

理论上,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?

关于c# - 检查外键约束 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6068703/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com