文章目录
一、复制表结构及数据到新表
- 一、复制表结构及数据到新表
- 二、只复制表结构到新表
- (一)使用关键字 like
- (二)使用 select 语句
- 三、真正完整复制表
- 四、复制表,同时重新定义字段名(拷贝旧表中部分的字段)
- 五、复制表,同时定义字段信息
- 六、复制旧表的数据到新表(整表复制数据)
- 七、复制旧表的数据到新表(按字段复制数据)
将数据表 tf_notice 的结构和数据复制到新表 t_notice 中
mysql> create table t_notice select * from tf_notice;
Query OK, 1 row affected (0.01 sec)
Records: 1 Duplicates: 0 Warnings: 0
注意:该语句只是按 select 语句执行的结果新建表,并不会复制表的主键、索引等信息。说白了就是将 select 语句查询的结果存储为一张表,新表取名为 t_notice。
二、只复制表结构到新表 (一)使用关键字 likemysql> create table t_notice like tf_notice;
Query OK, 0 rows affected (0.00 sec)
注意:
- 此种方法会将主键、索引等信息一起复制
- MySQL 4.0.25 之前的版本不支持此种方法
mysql> create table t_notice select * from tf_notice where 1=2;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0
注意:该语句只是按 select 语句执行的结果新建表,并不会复制表的主键、索引等信息。
三、真正完整复制表mysql> create table t_notice like tf_notice;
mysql> insert into t_notice select * from tf_notice;
四、复制表,同时重新定义字段名(拷贝旧表中部分的字段)
mysql> create table t_notice select notice_id id,title bt,content nr,sex xb from tf_notice;
CREATE TABLE t_notice AS (SELECT notice_id AS id,title AS bt,content AS nr,sex AS xb FROM tf_notice);
mysql> CREATE TABLE t_notice AS (SELECT notice_id,title,content FROM tf_notice);
五、复制表,同时定义字段信息
create table t_notice
(
notice_id INTEGER not null auto_increment PRIMARY KEY
)
select * from tf_notice;
说明:字段 notice_id 必须存在于 select 语句的结果中才行。
六、复制旧表的数据到新表(整表复制数据)mysql> insert into t_notice select * from tf_notice;
说明:
- 新表 t_notice 必须先创建
- 复制旧表整表的数据,新表的字段结构必须和旧表 tf_notice 相同,主要是指字段数量要相同,字段类型和字段长度只要存值不报错就行,字段名可以不同
INSERT INTO t_notie(id,bt,nr) SELECT notice_id,title,content FROM tf_notice;