本文汇总了MySQL导出所有Index 和 约束的方法,提供给大家以方便大家查询使用。具体如下:
1. 导出创建自增字段语句:
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
26
|
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. 导出所有索引:
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
26
27
|
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. 创建删除所有自增字段:
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
26
|
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. 删除库所有索引:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
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 |
希望本文所述示例能够对大家有所帮助。