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 )