本文总结了MySQL导出所有索引和约束的方法,为大家提供方便:

1。导出自添加字段语句的创建:


选择
concat(
更改表,
table_name,
或,
修改列,
column_name,
或,
如果(上(data_type)= 'int,
代替(
substring_index(
上(column_type),
,
一
),
int,
整数
),
上(column_type)
),
)无符号不为空auto_increment;
)
从information_schema.columns
在table_schema = 'source_database_name'and
特=上('auto_increment)
通过table_name ASC秩序




2。导出所有索引:


选择
concat('alter表` ',table_name,或添加的,
如果(non_unique = 1,
案上(index_type)
when'fulltext'then'fulltext指数
when'spatial'then'spatial指数
其他'index concat(`,
index_name,
或使用,
index_type
)
结束,
如果(上(index_name)=主要,
concat('主要使用的关键,
index_type
),
concat(特殊指数`,
index_name,
或使用,
index_type
)
)
(),group_concat(鲜明、concat(' ` ',column_name,以seq_in_index ASC分离器的` ')'),' as'show_add_indexes));
从information_schema.statistics
在table_schema = 'pbq
集团通过table_name,index_name
通过table_name ASC,ASC index_name




三.创建删除所有自添加字段:


选择
concat(
更改表,
table_name,
或,
修改列,
column_name,
或,
如果(上(data_type)= 'int,
代替(
substring_index(
上(column_type),
,
一
),
int,
整数
),
上(column_type)
),
未签名的非空;
)
从information_schema.columns
在table_schema = 'destination_database_name'and
特=上('auto_increment)
通过table_name ASC秩序




4。删除库的所有索引:


选择
concat(
更改表,
table_name,
或,
group_concat(
不同的
concat(
下降,
如果(上(index_name)=主要,
主键,
concat('index ` ',index_name,`)
)
)
分隔符,
),
';'
)
从information_schema.statistics
在table_schema = 'destination_database_name
集团通过table_name
通过table_name ASC秩序




希望本文中描述的示例能对您有所帮助。