IT科技

MySQL默认值和约束的查询方法

时间:2010-12-5 17:23:32  作者:域名   来源:IT科技类资讯  查看:  评论:0
内容摘要:一、MySQL默认值相关查询1. 列出 MySQL 数据库中的表默认值

一、认值MySQL默认值相关查询

1. 列出 MySQL 数据库中的和约表默认值 复制select table_schema as database_name

,

table_name

,

column_name

,

column_defaultfrom information_schema.columnswhere column_default is not null and table_schema not in (information_schema, sys

,

performance_schema,mysql

)

-- and table_schema = your database nameorder by table_schema

,

table_name

,

ordinal_position;1.2.3.4.5.6.7.8.9.10.11.12.

说明:

database_name - 数据库的名称(模式)table_name - 表的名称column_name - 列的名称column_default - 定义此列默认值的 SQL 表达式

2. MySQL数据库默认值汇总 复制select column_default

,

count(distinct concat(col.table_schema, ., col.table_name)) as tables

,

count(column_name) as columnsfrom information_schema.columns coljoin information_schema.tables tab on col.table_schema = tab.table_schema and col.table_name = tab.table_namewhere col.table_schema not in (sys, information_schema

,

mysql, performance_schema

)

and tab.table_type = BASE TABLEgroup by column_defaultorder by tables desc

,

columns desc;1.2.3.4.5.6.7.8.9.10.11.12.

说明:

column_default -为没有默认值的列定义默认约束(公式)和NULLtables- 具有此约束的表数(或具有对NULL行没有约束的列的表数)columns - 具有此特定约束的高防服务器列数(或NULL行没有约束)

二、约束

1. 列出了数据库(模式)中的查询所有不可为空的列 复制select tab.table_schema as database_name

,

tab.table_name

,

col.ordinal_position as column_id

,

col.column_name

,

col.data_type

,

case when col.numeric_precision is not null then col.numeric_precision else col.character_maximum_length end as max_length

,

case when col.datetime_precision is not null then col.datetime_precision when col.numeric_scale is not null then col.numeric_scale else 0 end as precisionfrom information_schema.tables as tabjoin information_schema.columns as col on col.table_schema = tab.table_schema and col.table_name = tab.table_name and col.is_nullable = nowhere tab.table_schema not in (information_schema, sys

,

mysql,performance_schema

)

and tab.table_type = BASE TABLE -- and tab.table_schema = database nameorder by tab.table_schema

,

tab.table_name

,

col.ordinal_position;1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.

注意:如果您需要特定数据库(模式)的信息,请取消注释 where 子句中的认值条件并提供您的数据库名称。

说明:

database_name - 数据库的和约名称(模式)table_name - 表的WordPress模板名称column_id - 列在表中的位置column_name - 列的名称data_type - 列数据类型max_length - 数据类型的最大长度precision- 数据类型的精度

2. 检查 MySQL 数据库中的列是否可为空 复制select c.table_schema as database_name

,

c.table_name

,

c.column_name

,

case c.is_nullable when NO then not nullable when YES then is nullable end as nullablefrom information_schema.columns cjoin information_schema.tables t on c.table_schema = t.table_schema and c.table_name = t.table_namewhere c.table_schema not in (mysql, sys, information_schema

,

performance_schema

)

and t.table_type = BASE TABLE -- and t.table_schema = database_name -- put your database name hereorder by t.table_schema

,

t.table_name

,

c.column_name;1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.

说明:

database_name - 数据库名称(模式)table_name - 表名column_name - 列名nullable- 列的可空性属性:is nullable- 可以为空,not nullable- 不可为空

查询
copyright © 2025 powered by 编程之道  滇ICP备2023006006号-34sitemap