复制表+表数据
20200227
将表mytable_1结构复制到表mytable_2
- sql server
select * into mytable_2 FROM mytable_1 where 1=2 -- 仅结构
select * into mytable_2 FROM mytable_1 -- 结构+数据
- mysql
方法1
create table mytable_2 like mytable_1;
INSERT INTO mytable_2 SELECT * FROM mytable_1;
-- 这种方式的复制可以复制旧表的主键、索引、Extra(auto_increment,字符集编码及排序)、注释、分区等属性。但是不包含触发器、外键等
方法2
create table mytable_2 as select * from mytable_1;
-- 不过这种方法的一个最不好的地方就是新表中没有了旧表的主键、索引、Extra(auto_increment,字符集编码及排序)、注释、分区等属性 以及触发器、外键等
- hive
方法1
create table mytable_2 like mytable_1;
INSERT INTO mytable_2 SELECT * FROM mytable_1;
-- 数据的存储格式与原来表保持一致,如分隔符为`,`,新表也为`,`
方法2
create table mytable_2 as select * from mytable_1;
-- 数据的存储格式变为hive默认格式,如分隔符由`,`变为`\t`