MySQL 将旧表复制到新表

1、CREATE TABLE新表 SELECT* FROM旧表;

该语句只是复制表结构以及数据,它不会复制与表关联的其他数据库对象,如索引,主键约束,外键约束,触发器等。

CREATE TABLE if not exists new_table
SELECT col1, col2, col3
FROM
existing_table
WHERE
conditions;

2、MySQL 数据库不支持 SELECT … INTO 语句,但支持 INSERT INTO … SELECT

其中在使用select into 语句与insert into select 语句时,新表要提前建立,并且新表与旧表的字段属性要一样才可以。

create table 新表 like 旧表;

新表建立之后才可以使用下面的两个语句:

SELECT * INTO 新表 FROM 旧表;

INSERT INTO 新表 SELECT * FROM 旧表;

只复制希望的列插入到另一个已存在的表中:

INSERT INTO 新表 (column_name(s)) SELECT column_name(s) FROM 旧表;

实例:INSERT INTO Websites (name, country) SELECT app_name, country FROM apps;

(二)复制相同表结构

对于mysql的复制相同表结构方法,有create table as 和create table like 两种

create table 新表 like 旧表;

create table 新表 as select * from 旧表 limit 0;

二者的区别:

as用来创建相同表结构并复制源表数据

like用来创建完整表结构和全部索引

oracle支持as,也是只有表结构没有索引
oracle不支持like。

(三)MySQL复制表到另一个数据库

访问不同数据库中的表:数据库名.表名 ,采用点 的形式。

有时,您要将表复制到其他数据库。 在这种情况下,可使用以下语句:

CREATE TABLE destination_db.new_table
LIKE source_db.existing_table;

INSERT destination_db.new_table
SELECT *
FROM source_db.existing_table;
SQL
具体流程:

CREATE DATABASE IF NOT EXISTS testdb;
SQL
其次,通过将其结构从示例数据库(yiibaidb)中的offices表复制出来,在testdb中创建了offices表。

CREATE TABLE testdb.offices LIKE yiibaidb.offices;
SQL
第三,我们将数据从yiibaidb.offices表复制到testdb.offices表中。

INSERT testdb.offices
SELECT *
FROM yiibaidb.offices;

转载自:https://www.cnblogs.com/snake23/p/9593887.html

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值