MySQL复制数据表方法

本文介绍两种MySQL命令组合,可在保留原有数据表结构和数据的情况下快速创建新表。适合用于开发过程中复制表格作为测试数据,避免直接操作正在运行的数据表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文将着重介绍两个MySQL命令的组合,它将以原有数据表为基础,创建相同结构和数据的新数据表。

 

这可以帮助你在开发过程中快速的复制表格作为测试数据,而不必冒险直接操作正在运行 的数据表。

 

示例如下:

 

将 production 数据库中的 mytbl 表快速复制为 mytbl_new,2个命令如下:

 

CREATE TABLE mytbl_new LIKE production.mytbl;

INSERT mytbl_new SELECT * FROM production.mytbl;

 

第一个命令是创建新的数据表 mytbl_new ,并复制 mytbl 的数据表结构。

第二个命令是讲数据表 mytbl 中的数据复制到新表 mytbl_new 。

 

注:production.mytbl是指定要复制表的数据库名称为 production 。它是可选的。

假如没有production. ,MySQL数据库将会假设mytbl在当前操作的数据库。

其它方法:
方案1:
复制整个表  
CREATE TABLE   new_table   SELECT   *   FROM   old_table;  

复制,不复制数据  
CREATE TABLE   new_table   SELECT   *   FROM   old_table   where   0;

注意:本方案其实只是把select语句的结果建一个表。所以new_table这个表不会有主键、索引。

方案2:
假如我们有以下这样一个表:

id      username    password
-----------------------------------
1       admin       *************
2       sameer      *************
3       stewart     *************


CREATE TABLE IF NOT EXISTS `admin` (

`id` int(6) unsigned NOT NULL auto_increment,
`username` varchar(50) NOT NULL default '',
`password` varchar(100) default NULL,
PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;


1. 下面这个语句会拷贝表结构到新表newadmin中。 (不会拷贝表中的数据)

CREATE TABLE newadmin LIKE admin


2. 下面这个语句会拷贝数据到新表中。 注意:这个语句其实只是把select语句的结果建一个表。所以newadmin这个 表不会有主键,索引。


CREATE TABLE newadmin 
(
SELECT *
FROM admin
)


3. 如果你要真正的复制一个表。可以用下面的语句。

CREATE TABLE newadmin LIKE admin;
INSERT INTO newadmin SELECT * FROM admin;


4. 我们可以操作不同的数据库。

CREATE TABLE newadmin LIKE shop.admin;
CREATE TABLE newshop.newadmin LIKE shop.admin;


5. 我们也可以拷贝一个表中其中的一些字段。

CREATE TABLE newadmin 
(
SELECT username, password FROM admin
)


6. 我们也可以讲新建的表的字段改名。

CREATE TABLE newadmin 
(
SELECT id, username AS uname, password AS pass FROM admin
)


7. 我们也可以拷贝一部分数据。

CREATE TABLE newadmin 
(
SELECT * FROM admin WHERE LEFT(username,1) = 's'
)


8. 我们也可以在创建表的同时定义表中的字段信息。

CREATE TABLE newadmin
(
id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY
)
(
SELECT * FROM admin
)

转载于:https://www.cnblogs.com/sunss/archive/2010/10/08/1845804.html

### 回答1: MySQL数据表数据复制可以使用CREATE TABLE ... SELECT语句来实现。 格式如下: CREATE TABLE new_table SELECT * FROM old_table; 这条语句会将old_table中的所有数据复制到新建的new_table中。 也可以选择性地复制特定的列,格式如下: CREATE TABLE new_table (col1_name, col2_name, ...) SELECT col1_name, col2_name, ... FROM old_table; 这样会将old_table中col1_name, col2_name, ...列的数据复制到新建的new_table中。 另外也可以使用INSERT INTO ... SELECT语句将数据插入到已有的数据表中。 格式如下: INSERT INTO new_table SELECT * FROM old_table; 这条语句会将old_table中的所有数据插入到已有的new_table中。 ### 回答2: MySQL提供了多种方法来进行数据表数据的复制,常见的有以下几种: 1. 使用INSERT INTO语句复制:可以通过编写一个SELECT语句,选取需要复制的数据,并使用INSERT INTO语句将选取的数据插入到另一个中。例如,可以使用以下语句将A中的数据复制B中: ``` INSERT INTO B (字段1, 字段2, ..., 字段n) SELECT 字段1, 字段2, ..., 字段n FROM A; ``` 2. 使用SELECT INTO语句复制:可以通过编写一个SELECT语句,选取需要复制的数据,并使用SELECT INTO语句将选取的数据插入到一个新的中。例如,可以使用以下语句将A中的数据复制到一个新的C中: ``` SELECT 字段1, 字段2, ..., 字段n INTO C FROM A; ``` 3. 使用CREATE TABLE语句复制:可以通过使用CREATE TABLE语句并选择LIKE关键字,来创建一个与源结构相同的新,并将源的数据复制到新中。例如,可以使用以下语句创建一个与A结构相同的新D,并将A的数据复制D中: ``` CREATE TABLE D LIKE A; INSERT INTO D SELECT * FROM A; ``` 无论使用哪种方法进行数据复制,需要注意目标的结构要与源相匹配,以避免出错。此外,还可以利用导入导出工具如mysqldump和LOAD DATA INFILE来进行数据表数据的复制。 ### 回答3: MySQL数据表数据复制是指将一个数据表的数据复制到另一个数据表中。MySQL提供了多种方法来完成数据表复制,包括使用INSERT INTO SELECT语句、使用CREATE TABLE AS SELECT语句以及使用mysqldump命令等。 使用INSERT INTO SELECT语句可以将源的数据插入到目标中。具体步骤如下:首先,通过执行CREATE TABLE语句创建目标,并确保目标与源具有相同的结构。然后,执行INSERT INTO SELECT语句,将源的数据插入到目标中。 使用CREATE TABLE AS SELECT语句也可实现数据表复制。该语句将创建一个新,并将源的数据复制到新中。具体步骤如下:首先,执行CREATE TABLE AS SELECT语句,指定新的名称和源的名称。然后,该语句将创建一个新,并将源的数据复制到新中。 另外,使用mysqldump命令可以将数据表的结构和数据导出到一个文件中,然后通过执行导入命令将数据导入到目标数据库中。具体步骤如下:首先,使用mysqldump命令导出源的结构和数据到一个文件中。然后,使用mysql命令连接到目标数据库,并执行导入命令,将数据导入到目标中。 需要注意的是,在进行数据表复制时,需要确保目标的结构与源的结构相同,以便正确地将数据复制到目标中。此外,还需要注意数据表中的主键、唯一约束和外键等约束条件是否能够在目标中正确地被复制和维持。 总之,MySQL提供了多种方法用于复制数据表的数据,可以根据具体的需求和情况选择适合的方法来完成数据表复制操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值