最近在进行数据库表备份时,遇到一个坑:create table 的用法上,有关索引丢失的问题。
对于mysql的复制相同表结构方法,有
create table as 和
create table like 两种:
create table t2 as select * from t1; --> 创建表(不包含索引)并插入信息
as创建出来的t2表(新表)缺少t1表(源表)的索引信息,只有表结构相同,没有索引。
create table t2 like t1; --> 创建表(包含索引)
insert into t2 select * from t1; --> 插入信息
like 创建出来的新表包含源表的完整表结构和索引信息
二者的用途:
-
as用来创建相同表结构并复制源表数据
-
like用来创建完整表结构和全部索引