欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mysql复制表以及复制数据库

程序员文章站 2022-06-11 21:42:48
...

一、将旧表复制到新表

(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

  • INSERT INTO 新表 SELECT * FROM 旧表;(复制全部)
  • INSERT INTO 新表 (column_name(s)) SELECT column_name(s) FROM 旧表;(只复制某一或某几列)

⚠️:在使用select into 语句与insert into select 语句时,新表要提前建立,并且新表与旧表的字段属性要一样才可以(create table 新表 like 旧表;

二、复制相同表结构

两种方式:create table as和create table like

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

二者的区别:

  • as用来创建相同表结构并复制源表数据
  • like用来创建完整表结构和全部索引
  • oracle支持as,也是只有表结构没有索引;oracle不支持like
相关标签: Mysql mysql