MySQL 复制表

MySQL 复制表

如果我们需要完全的复制MySQL的数据表,包括表的结构,索引,默认值等。 如果仅仅使用CREATE TABLE ... SELECT 命令,是无法实现的。

本文将为大家介绍如何完整的复制MySQL数据表,步骤如下:

  • 使用 SHOW CREATE TABLE 命令获取创建数据表(CREATE TABLE) 语句,该语句包含了原数据表的结构,索引等。
  • 复制以下命令显示的SQL语句,修改数据表名,并执行SQL语句,通过以上命令 将完全的复制数据表结构。
  • 如果你想复制表的内容,你就可以使用 INSERT INTO ... SELECT 语句来实现。

实例

尝试以下实例来复制表 cnblogs_tbl 。

步骤一:

获取数据表的完整结构。

mysql> SHOW CREATE TABLE cnblogs_tbl \G;
*************************** 1. row ***************************
       Table: cnblogs_tbl
Create Table: CREATE TABLE `cnblogs_tbl` (
  `cnblogs_id` int(11) NOT NULL auto_increment,
  `cnblogs_title` varchar(100) NOT NULL default ‘‘,
  `cnblogs_author` varchar(40) NOT NULL default ‘‘,
  `submission_date` date default NULL,
  PRIMARY KEY  (`cnblogs_id`),
  UNIQUE KEY `AUTHOR_INDEX` (`cnblogs_author`)
) ENGINE=InnoDB
1 row in set (0.00 sec)

ERROR:
No query specified

步骤二:

修改SQL语句的数据表名,并执行SQL语句。

mysql> CREATE TABLE `clone_tbl` (
  -> `cnblogs_id` int(11) NOT NULL auto_increment,
  -> `cnblogs_title` varchar(100) NOT NULL default ‘‘,
  -> `cnblogs_author` varchar(40) NOT NULL default ‘‘,
  -> `submission_date` date default NULL,
  -> PRIMARY KEY  (`cnblogs_id`),
  -> UNIQUE KEY `AUTHOR_INDEX` (`cnblogs_author`)
-> ) ENGINE=InnoDB;
Query OK, 0 rows affected (1.80 sec)

步骤三:

执行完第二步骤后,你将在数据库中创建新的克隆表 clone_tbl。 如果你想拷贝数据表的数据你可以使用 INSERT INTO... SELECT 语句来实现。

mysql> INSERT INTO clone_tbl (cnblogs_id,
    ->                        cnblogs_title,
    ->                        cnblogs_author,
    ->                        submission_date)
    -> SELECT cnblogs_id,cnblogs_title,
    ->        cnblogs_author,submission_date
    -> FROM cnblogs_tbl;
Query OK, 3 rows affected (0.07 sec)
Records: 3  Duplicates: 0  Warnings: 0

执行以上步骤后,你将完整的复制表,包括表结构及表数据。

时间: 2024-08-11 03:36:20

MySQL 复制表的相关文章

6)-MySQL复制表

具有SELECT子句的MySQL INSERT 在MySQL中,可以使用SELECT语句返回的列和值来填充INSERT语句的值. 此功能非常方便,因为您可以使用INSERT和SELECT子句完全或部分复制表,如下所示: insert into table_1 select c1, c2, from table_2; 假设要将tasks表复制到tasks_bak表. 首先,通过复制tasks表的结构,创建一个名为tasks_bak的新表,如下所示: create table tasks_bak l

雷林鹏分享:MySQL 复制表

MySQL 复制表 如果我们需要完全的复制MySQL的数据表,包括表的结构,索引,默认值等. 如果仅仅使用CREATE TABLE ... SELECT 命令,是无法实现的. 本章节将为大家介绍如何完整的复制MySQL数据表,步骤如下: 使用 SHOW CREATE TABLE 命令获取创建数据表(CREATE TABLE) 语句,该语句包含了原数据表的结构,索引等. 复制以下命令显示的SQL语句,修改数据表名,并执行SQL语句,通过以上命令 将完全的复制数据表结构. 如果你想复制表的内容,你就

MySQL 复制表:如何准确无误的创建复制表?

MySQL 复制表 如果我们需要完全的复制MySQL的数据表,包括表的结构,索引,默认值等. 如果仅仅使用CREATE TABLE ... SELECT 命令,是无法实现的. 本章节将为大家介绍如何完整的复制MySQL数据表,步骤如下: 使用 SHOW CREATE TABLE 命令获取创建数据表(CREATE TABLE) 语句,该语句包含了原数据表的结构,索引等. 复制以下命令显示的SQL语句,修改数据表名,并执行SQL语句,通过以上命令 将完全的复制数据表结构. 如果你想复制表的内容,你就

MySQL复制表-SELECT INTO FROM

基础Table: mysql> select * from staff; +----+----------+-------+ | id | name | slary | +----+----------+-------+ | 3 | haofugui | 10000 | | 4 | guoming | 3500 | | 5 | haotian | 2900 | +----+----------+-------+ 3 rows in set (0.00 sec) mysql> describe

mysql复制表

create table 表名 like 要复制的表名  //复制表结构 insert into 表名 select * from 要复制的表名  //复制数据 方法2,一般不推荐,如果后台加数据,可能会有损失,用于,一次性建成后不修改数据用 create table 表名 select * from 要复制的表名  //同时复制结构和数据,这种方法可能会丢失一些结构信息,比如索引,约束,自增长属性

MySQL数据库之-foreign key 外键(一对多、多对多、一对一)、修改表、复制表

今日重点:外键 一对多 多对多      一对一 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 一.引言: 我们在同一数据库创建的表时候,很多时候会出现相同数据的冗余问题,也就是说几个id

数据库操作,复制表

整理自:http://blog.51yip.com/mysql/1311.html 显示创建表的信息: 1 USE world; 2 SHOW CREATE TABLE city; 显示表结构信息: 1 CREATE TABLE `city` ( 2 `ID` int(11) NOT NULL AUTO_INCREMENT, 3 `Name` char(35) NOT NULL DEFAULT '', 4 `CountryCode` char(3) NOT NULL DEFAULT '', 5

3,外键之表关联关系,修改表,复制表

今日内容:  一:外键   一对多:   多对多:   一对一:  二:了解知识点   复制表   修改表相关操作     前戏:   所有的信息都在一张表中所带来的的问题    1,表的结构不清晰    2,浪费硬盘空间    3,表的扩展性极差(是一个很难逃避的缺点)   类似于我们把所有的代码都写在同一个py文件中    在确定表与表之间的关系时,一定要换位思考(必须两方都考虑周全之后才能得出结论)    以员工表和部门表为例:     先站在员工表看能否有多个员工对应一个部门      

sqlserver复制表

现有数据库a和数据库b,数据库a里有表table1,数据库b里有表table2. 现在要把表table1里的记录复制到table2中,不同情况采用不同方法: 1. table1和table2表结构相同 use b insert into table2 select * from a.dbo.table1 2. table1和table2表结构不相同 use b insert into table2(c1,c2) select c1,c2 from a.dbo.table1 coolxiaoyi: