本文章来给各位朋友介绍一下关于在mysql中进行表数据与表结构复制语句,方法会有很多种下面我来介绍介绍,有需要了解的朋友可参考。
先来总结复制表与结的方法
一、CREATE TABLE 方法
整表复制:create table 新表 select * from 旧表;
结构复制:create table 新表 select * from 旧表 where 1<>1;
一,复制表结构
方法1,代码如下:
- mysql>createtablealikeusers;//复制表结构
- QueryOK,0rowsaffected(0.50sec)
- --phpfensi.com
- mysql>showtables;
- +----------------+
- |Tables_in_test|
- +----------------+
- |a|
- |users|
- +----------------+
- 2rowsinset(0.00sec)
方法2,代码如下:
- mysql>createtablebselect*fromuserslimit0;//复制表结构
- QueryOK,0rowsaffected(0.00sec)
- Records:0Duplicates:0Warnings:0
- mysql>showtables;
- +----------------+
- |Tables_in_test|
- +----------------+
- |a|
- |b|
- |users|
- +----------------+
- 3rowsinset(0.00sec)
方法3,代码如下:
- mysql>showcreatetableusersG;//显示创表的sql
- ***************************1.row***************************
- Table:users
- CreateTable:CREATETABLE`users`(//改表名
- `ID`bigint(20)unsignedNOTNULLAUTO_INCREMENT,
- `user_name`varchar(60)NOTNULLDEFAULT'',
- `user_pass`varchar(64)NOTNULLDEFAULT'',
- PRIMARYKEY(`ID`)
- )ENGINE=InnoDBAUTO_INCREMENT=5DEFAULTCHARSET=utf8//改auto_increment
- 1rowinset(0.00sec)
把sql语句copy出来,改一下表名和atuo_increment,然后在执行一下.
二,复制表数据,以及表结构.
方法1,代码如下:
- mysql>createtablecselect*fromusers;//复制表的sql
- QueryOK,4rowsaffected(0.00sec)
- Records:4Duplicates:0Warnings:0
方法2,代码如下:
- mysql>createtabledselectuser_name,user_passfromuserswhereid=1;
- QueryOK,1rowaffected(0.00sec)
- Records:1Duplicates:0Warnings:0
上面的2种方法,方便,快捷,灵活性强.
2、CREATE TABLE 新表 LIKE 旧表;
二、INSERT INTO 方法
得到建表语句: show create table 旧表;复制数据到新表:
1、复制旧表的数据到新表(假设两个表结构一样)
INSERT INTO 新表 SELECT * FROM 旧表;
2、复制旧表的数据到新表(假设两个表结构不一样)
INSERT INTO 新表(字段1,字段2,…….) SELECT 字段1,字段2,…… FROM 旧表;
三、CREATE TEMPORARY TABLE创建临时表