MySQL导出所有Index和约束的方法
本文汇总了MySQL导出所有Index和约束的方法,提供给大家以方便大家查询使用。具体如下:
1.导出创建自增字段语句:
SELECT
CONCAT(
'ALTERTABLE`',
TABLE_NAME,
'`',
'MODIFYCOLUMN`',
COLUMN_NAME,
'`',
IF(UPPER(DATA_TYPE)='INT',
REPLACE(
SUBSTRING_INDEX(
UPPER(COLUMN_TYPE),
')',
1
),
'INT',
'INTEGER'
),
UPPER(COLUMN_TYPE)
),
')UNSIGNEDNOTNULLAUTO_INCREMENT;'
)
FROMinformation_schema.COLUMNS
WHERETABLE_SCHEMA='source_database_name'AND
EXTRA=UPPER('AUTO_INCREMENT')
ORDERBYTABLE_NAMEASC
2.导出所有索引:
SELECT
CONCAT('ALTERTABLE`',TABLE_NAME,'`','ADD',
IF(NON_UNIQUE=1,
CASEUPPER(INDEX_TYPE)
WHEN'FULLTEXT'THEN'FULLTEXTINDEX'
WHEN'SPATIAL'THEN'SPATIALINDEX'
ELSECONCAT('INDEX`',
INDEX_NAME,
'`USING',
INDEX_TYPE
)
END,
IF(UPPER(INDEX_NAME)='PRIMARY',
CONCAT('PRIMARYKEYUSING',
INDEX_TYPE
),
CONCAT('UNIQUEINDEX`',
INDEX_NAME,
'`USING',
INDEX_TYPE
)
)
),'(',GROUP_CONCAT(DISTINCTCONCAT('`',COLUMN_NAME,'`')ORDERBYSEQ_IN_INDEXASCSEPARATOR','),');')AS'Show_Add_Indexes'
FROMinformation_schema.STATISTICS
WHERETABLE_SCHEMA='pbq'
GROUPBYTABLE_NAME,INDEX_NAME
ORDERBYTABLE_NAMEASC,INDEX_NAMEASC
3.创建删除所有自增字段:
SELECT
CONCAT(
'ALTERTABLE`',
TABLE_NAME,
'`',
'MODIFYCOLUMN`',
COLUMN_NAME,
'`',
IF(UPPER(DATA_TYPE)='INT',
REPLACE(
SUBSTRING_INDEX(
UPPER(COLUMN_TYPE),
')',
1
),
'INT',
'INTEGER'
),
UPPER(COLUMN_TYPE)
),
')UNSIGNEDNOTNULL;'
)
FROMinformation_schema.COLUMNS
WHERETABLE_SCHEMA='destination_database_name'AND
EXTRA=UPPER('AUTO_INCREMENT')
ORDERBYTABLE_NAMEASC
4.删除库所有索引:
SELECT
CONCAT(
'ALTERTABLE`',
TABLE_NAME,
'`',
GROUP_CONCAT(
DISTINCT
CONCAT(
'DROP',
IF(UPPER(INDEX_NAME)='PRIMARY',
'PRIMARYKEY',
CONCAT('INDEX`',INDEX_NAME,'`')
)
)
SEPARATOR','
),
';'
)
FROMinformation_schema.STATISTICS
WHERETABLE_SCHEMA='destination_database_name'
GROUPBYTABLE_NAME
ORDERBYTABLE_NAMEASC
希望本文所述示例能够对大家有所帮助。
热门推荐
10 对患者生日祝福语简短
11 结婚祝福语简短装备
12 周岁祝福语学生文案简短
13 订婚领证祝福语简短精辟
14 导师获奖祝福语大全简短
15 新婚购房祝福语简短精辟
16 牛年祝福语简短的爱人
17 送芒果的祝福语简短
18 送给学长毕业祝福语简短