MySQL数据库中如何复制表结构?复制表数据内容语句

MySQL数据库中如何复制表结构?复制表数据内容语句

MySQL复制表

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

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

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

实例

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

步骤一:

获取数据表的完整结构。

mysql > SHOW CREATE TABLE chenweiliang_tbl \ G ; *************************** 1. row ******************** ******* Table :chenweiliang_tbl
 Create Table :CREATE TABLE`chenweiliang_tbl` (`chenweiliang_id` int (11 )NOT NULL auto_increment ,`chenweiliang_title` varchar (100 )NOT NULL default '' ,'chenweiliang_author` varchar (40 )NOT NULL 默认'' ,
 
         
   
   
   
  `submission_date` 日期默认NULL ,
  PRIMARY KEY   (`chenweiliang_id` ),
  UNIQUE KEY `AUTHOR_INDEX` (`chenweiliang_author` ))ENGINE = InnoDB的1 行中集合(0.00 秒) 
 
  

错误:没有指定查询

步骤二:

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

mysql > CREATE TABLE`clone_tbl` (- > `chenweiliang_id` int (11 )NOT NULL auto_increment ,- > `chenweiliang_title` varchar (100 )NOT NULL default '' ,- > `chenweiliang_author` varchar (40 )NOT NULL default '' ,- > `submission_date` 日期默认为NULL ,- > PRIMARY KEY   (`chenweiliang_id` ),- > UNIQUE KEY 
    
    
    
   
  
  `AUTHOR_INDEX` (`chenweiliang_author` )- > )ENGINE = InnoDB ; 查询OK ,0 行受影响(1.80 秒) 
 
 

步骤三:

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

mysql > INSERT INTO clone_tbl (chenweiliang_id ,- >                         chenweiliang_title ,- >                         chenweiliang_author ,- >                         submission_date )- > SELECT chenweiliang_id ,chenweiliang_title ,- >         chenweiliang_author ,submission_date
     - > FROM chenweiliang_tbl ; 查询OK ,3 行受影响(0.07 秒)记录:3 重复:0
    
    
    
    
    
 
      警告:0 

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

另一种复制表方法

另一种完整复制表的方法:

CREATE TABLE targetTable LIKE sourceTable ; 
INSERT INTO targetTable SELECT * FROM sourceTable ;

其他:

可以拷贝一个表中其中的一些字段:

CREATE TABLE newadmin AS
 (
    SELECT用户名,密码从管理员
 )

可以将新建的表的字段改名:

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

可以拷贝一部分数据:

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

可以在创建表的同时定义表中的字段信息:

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

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

Scroll to Top