如何使用c#获取有关mysql表的所有详细信息?

时间:2009-04-19 10:10:12

标签: c# mysql

我想使用c#

检索mysql表的这些信息

1)完整的列定义,包括名称,大小和数据类型,以及额外信息,如null / not null,无符号,自动增量,默认值,如果数据类型为枚举,则为可接受的值

2)所有约束 - 主要/外来/检查/唯一

3)所有索引

我可以使用针对数据库的“describe table_name”查询来获取与列相关的基本信息。

但是如何获取所有这些信息?

的问候, 安键

2 个答案:

答案 0 :(得分:6)

只针对INFORMATION_SCHEMA ...

抛出查询

例如,要获取列定义:

SELECT   TABLE_NAME
       , COLUMN_NAME
       , DATA_TYPE
       , CHARACTER_MAXIMUM_LENGTH
       , CHARACTER_OCTET_LENGTH 
       , NUMERIC_PRECISION 
       , NUMERIC_SCALE AS SCALE
       , COLUMN_DEFAULT
       , IS_NULLABLE
FROM INFORMATION_SCHEMA.COLUMNS 

查看the information schema tables以获取更多信息。

希望它有所帮助。

答案 1 :(得分:2)

您可以使用SqlDataReader.GetSchemaTable()方法,这仅适用于您的1)选项,但这可以使用与您的架构相同的连接来完成,如果您的连接字符串具有默认数据库(架构)选项集即可。  (您不需要创建与INFORMATION_SCHEMA架构的单独连接。)

有关此方法的更多信息,请参见here,并举例说明如何使用here

要获取有关您的架构或数据库的所有内容,请使用SqlClientMetaDataCollectionNames类。

有关课程的更多信息,请参见here,并举例说明如何使用here