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

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

MySQL复制表

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

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

实例

尝试以下实例来复制表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
   

发表回复

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