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