MySQL的create table as 与create table like区别

在MySQL中,使用createtableas和liket1创建表时,两者对索引的处理方式不同。createtablet2asselect*fromt1会创建一个不包含索引的新表t2,而createtablet2liket1则能保留源表t1的索引信息。因此,如需完整复制表结构及索引,应选择liket1方式,并使用insertinto插入数据。
摘要由CSDN通过智能技术生成
最近在进行数据库表备份时,遇到一个坑:create table 的用法上,有关索引丢失的问题。
 
对于mysql的复制相同表结构方法,有  create table ascreate 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用来创建完整表结构和全部索引
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值