本文汇总了MySQL导出所有Index 和 约束的方法,提供给大家以方便大家查询使用。具体如下:
1. 导出创建自增字段语句:
?
1234567891011121314151617181920212223242526 | SELECT CONCAT( 'ALTER TABLE `' , TABLE_NAME, '` ' , 'MODIFY COLUMN `' , COLUMN_NAME, '` ' , IF( UPPER (DATA_TYPE) = 'INT' , REPLACE ( SUBSTRING_INDEX( UPPER (COLUMN_TYPE), ')' , 1 ), 'INT' , 'INTEGER' ), UPPER (COLUMN_TYPE) ), ') UNSIGNED NOT NULL AUTO_INCREMENT;' ) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'source_database_name' AND EXTRA = UPPER ( 'AUTO_INCREMENT' ) ORDER BY TABLE_NAME ASC |
2. 导出所有索引:
?
123456789101112131415161718192021222324252627 | SELECT CONCAT( 'ALTER TABLE `' ,TABLE_NAME, '` ' , 'ADD ' , IF(NON_UNIQUE = 1, CASE UPPER (INDEX_TYPE) WHEN 'FULLTEXT' THEN 'FULLTEXT INDEX' WHEN 'SPATIAL' THEN 'SPATIAL INDEX' ELSE CONCAT( 'INDEX `' , INDEX_NAME, '` USING ' , INDEX_TYPE ) END , IF( UPPER (INDEX_NAME) = 'PRIMARY' , CONCAT( 'PRIMARY KEY USING ' , INDEX_TYPE ), CONCAT( 'UNIQUE INDEX `' , INDEX_NAME, '` USING ' , INDEX_TYPE ) ) ), '(' , GROUP_CONCAT( DISTINCT CONCAT( '`' , COLUMN_NAME, '`' ) ORDER BY SEQ_IN_INDEX ASC SEPARATOR ', ' ), ');' ) AS 'Show_Add_Indexes' FROM information_schema. STATISTICS WHERE TABLE_SCHEMA = 'pbq' GROUP BY TABLE_NAME, INDEX_NAME ORDER BY TABLE_NAME ASC , INDEX_NAME ASC |
3. 创建删除所有自增字段:
?
1234567891011121314151617181920212223242526 | SELECT CONCAT( 'ALTER TABLE `' , TABLE_NAME, '` ' , 'MODIFY COLUMN `' , COLUMN_NAME, '` ' , IF( UPPER (DATA_TYPE) = 'INT' , REPLACE ( SUBSTRING_INDEX( UPPER (COLUMN_TYPE), ')' , 1 ), 'INT' , 'INTEGER' ), UPPER (COLUMN_TYPE) ), ') UNSIGNED NOT NULL;' ) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'destination_database_name' AND EXTRA = UPPER ( 'AUTO_INCREMENT' ) ORDER BY TABLE_NAME ASC |
4. 删除库所有索引:
?
12345678910111213141516171819202122 | SELECT CONCAT( 'ALTER TABLE `' , TABLE_NAME, '` ' , GROUP_CONCAT( DISTINCT CONCAT( 'DROP ' , IF( UPPER (INDEX_NAME) = 'PRIMARY' , 'PRIMARY KEY' , CONCAT( 'INDEX `' , INDEX_NAME, '`' ) ) ) SEPARATOR ', ' ), ';' ) FROM information_schema. STATISTICS WHERE TABLE_SCHEMA = 'destination_database_name' GROUP BY TABLE_NAME ORDER BY TABLE_NAME ASC |
希望本文所述示例能够对大家有所帮助。
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦