mysql复制表结构create table as和like的区别

对于MySQL的复制相同表结构方法,有create table as 和create table like 两种,区别是什么呢?

create table t2 as select * from t1 where 1=2;
或者 limit 0;

as创建出来的t2表(新表)缺少t1表(源表)的索引信息,只有表结构相同,没有索引。

create table t2 like t1 ;

like 创建出来的新表包含源表的完整表结构和索引信息。

二者的用途:
as用来创建相同表结构并复制源表数据。
like用来创建完整表结构和全部索引。

oracle支持as,也是只有表结构没有索引,oracle不支持like。
两种方式在复制表的时候均不会复制权限对表的设置。比如说原本对表B做了权限设置,复制后,表A不具备类似于表B的权限。

时间: 2024-12-06 21:45:59

mysql复制表结构create table as和like的区别的相关文章

Mysql复制表结构、表数据以及修改主键

mysql查看表结构命令 show columns from 表名; 1.复制表结构及数据到新表 CREATE TABLE 新表SELECT * FROM 旧表 这种方法会将oldtable中所有的内容都拷贝过来,当然我们可以用delete from newtable;来删除. 不过这种方法的一个最不好的地方就是新表中没有了旧表的primary key.Extra(auto_increment)等属性.需要自己用"alter"添加,而且容易搞错.     2.只复制表结构到新表 CRE

【数据库】MySQL 复制表结构

介绍 有时候我们需要原封不动的复制一张表的表结构来生成一张新表,MYSQL提供了两种便捷的方法. 例: CREATE TABLE tb_base( id INT NOT NULL PRIMARY KEY, name VARCHAR(10), KEY ix_name (name)) ENGINE='MyISAM',CHARSET=utf8,COMMENT 'a' ; insert into tb_base() values(1,'a'),(2,'b'); 一.LIKE方法 like方法能一模一样的

mysql 复制表结构、表数据的方法

From: http://blog.163.com/[email protected]/blog/static/109463675201191173221759/ MySQL 添加列,修改列,删除列的sql语句写法 ALTER TABLE:添加,修改,删除表的列,约束等表的定义. 查看列:desc 表名; 修改表名:alter table t_book rename to bbb; 添加列:alter table 表名 add column 列名 varchar(30); 删除列:alter t

MySQL 复制表结构

介绍 有时候我们需要原封不动的复制一张表的表结构来生成一张新表,MYSQL提供了两种便捷的方法. 例: CREATE TABLE tb_base( id INT NOT NULL PRIMARY KEY, name VARCHAR(10), KEY ix_name (name)) ENGINE='MyISAM',CHARSET=utf8,COMMENT 'a' ; insert into tb_base() values(1,'a'),(2,'b'); 一.LIKE方法 like方法能一模一样的

mysql 复制表结构(包括索引等)、表内容

=============================================== 2019/7/16_第1次修改                       ccb_warlock =============================================== mysql库中有一张表查询要较大,最后采取的方案是清理数据只保留近期.但是有需要保留原表所有数据的备份,由此才尝试了复制表结构.表内容的sql脚本. 一.复制表结构(包括索引等) CREATE TABLE <

MySQL复制表结构,表数据。

1.复制表结构及数据到新表CREATE TABLE 新表 SELECT * FROM 旧表 这种方法会将oldtable中所有的内容都拷贝过来,当然我们可以用delete from newtable;来删除. 不过这种方法的一个最不好的地方就是新表中没有了旧表的primary key.Extra(auto_increment)等属性.需要自己用"alter"添加,而且容易搞错. 2.只复制表结构到新表 CREATE TABLE 新表 SELECT * FROM 旧表 WHERE 1=2

mysql 复制表结构,表数据

1.复制表结构及数据到新表CREATE TABLE 新表 SELECT * FROM 旧表 这种方法会将oldtable中所有的内容都拷贝过来,当然我们可以用delete from newtable;来删除. 不过这种方法的一个最不好的地方就是新表中没有了旧表的primary key.Extra(auto_increment)等属性.需要自己用"alter"添加,而且容易搞错. 2.只复制表结构到新表 CREATE TABLE 新表 SELECT * FROM 旧表 WHERE 1=2

mysql复制表结构、表数据

1.复制表结构及数据到新表 CREATE TABLE 新表SELECT * FROM 旧表 这种方法会将oldtable中所有的内容都拷贝过来,当然我们可以用delete from newtable;来删除. 不过这种方法的一个最不好的地方就是新表中没有了旧表的primary key.Extra(auto_increment)等属性.需要自己用"alter"添加,而且容易搞错. 2.只复制表结构到新表 CREATE TABLE 新表SELECT * FROM 旧表WHERE 1=2 或

【MySQL】MySQL复制表结构、表数据

平常,复制.备份表,一般都直接操作IDE完成.但有时,一些初始化数据的脚本,在操作数据前,最好备份下操作表的结构.数据,不至于出错了被置于为难的境地. 所以复制表结构.表数据的语句就派上用场. > 复制表结构.表数据 create table t_table_name_1 select * from t_table_name_2; > 复制表结构 如果只想复制表结构,就加个过滤数据的条件嘛(>_<) create table t_table_name_1 select * from