吴裕雄 26-MySQL 复制表
如果我们需要完全的复制MySQL的数据表,包括表的结构,索引,默认值等。
如果仅仅使用CREATE TABLE ... SELECT 命令,是无法实现的。
本章节将为大家介绍如何完整的复制MySQL数据表,步骤如下:
使用 SHOW CREATE TABLE 命令获取创建数据表(CREATE TABLE) 语句,
该语句包含了原数据表的结构,索引等。
复制以下命令显示的SQL语句,修改数据表名,并执行SQL语句,
通过以上命令 将完全的复制数据表结构。
如果你想复制表的内容,你就可以使用 INSERT INTO ... SELECT 语句来实现。
实例
尝试以下实例来复制表 runoob_tbl 。
步骤一:获取数据表的完整结构。
SHOW CREATE TABLE runoob_tbl \G;
步骤二:修改SQL语句的数据表名,并执行SQL语句。
CREATE TABLE `clone_tbl` (
`runoob_id` int(11) NOT NULL auto_increment,
`runoob_title` varchar(100) NOT NULL default '',
`runoob_author` varchar(40) NOT NULL default '',
`submission_date` date default NULL,
PRIMARY KEY (`runoob_id`),
UNIQUE KEY `AUTHOR_INDEX` (`runoob_author`)
) ENGINE=InnoDB;
步骤三:
执行完第二步骤后,你将在数据库中创建新的克隆表 clone_tbl。
如果你想拷贝数据表的数据你可以使用 INSERT INTO... SELECT 语句来实现。
INSERT INTO clone_tbl(runoob_id,runoob_title,runoob_author,submission_date)
SELECT runoob_id,runoob_title,runoob_author,submission_date FROM runoob_tbl;
执行以上步骤后,你将完整的复制表,包括表结构及表数据。
另一种完整复制表的方法:
CREATE TABLE targetTable LIKE sourceTable;
INSERT INTO targetTable SELECT * FROM sourceTable;
其他:
可以拷贝一个表中其中的一些字段:
CREATE TABLE newadmin AS
(
SELECT username, password FROM admin
)
可以将新建的表的字段改名:
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
)
AS
(
SELECT * FROM admin
)
来给大家区分下mysql复制表的两种方式。
第一、只复制表结构到新表
create table 新表 select * from 旧表 where 1=2
或者
create table 新表 like 旧表
第二、复制表结构及数据到新表
create table新表 select * from 旧表
吴裕雄 26-MySQL 复制表的更多相关文章
- DB-MySQL:MySQL 复制表
ylbtech-DB-MySQL:MySQL 复制表 1.返回顶部 1. MySQL 复制表 如果我们需要完全的复制MySQL的数据表,包括表的结构,索引,默认值等. 如果仅仅使用CREATE TA ...
- 吴裕雄--天生自然MySQL学习笔记:MySQL 复制表
如果需要完全的复制MySQL的数据表,包括表的结构,索引,默认值等. 如果仅仅使用CREATE TABLE ... SELECT 命令,是无法实现的. 如何完整的复制MySQL数据表,步骤如下: 使用 ...
- MySQL 复制表
MySQL 复制表 如果我们需要完全的复制MySQL的数据表,包括表的结构,索引,默认值等. 如果仅仅使用CREATE TABLE ... SELECT 命令,是无法实现的. 本文将为大家介绍如何完整 ...
- 二十七、MySQL 复制表
MySQL 复制表 如果我们需要完全的复制MySQL的数据表,包括表的结构,索引,默认值等. 如果仅仅使用CREATE TABLE ... SELECT 命令,是无法实现的. 本章节将为大家介绍如何完 ...
- MySQL复制表-SELECT INTO FROM
基础Table: mysql> select * from staff; +----+----------+-------+ | id | name | slary | +----+------ ...
- MySQL复制表-INSERT INTO SELECT
基础table为: mysql> select * from staff; +----+----------+-------+ | id | name | slary | +----+----- ...
- MySQL复制表-CREATE SELECT
假设存在以下Table: mysql> select * from staff; +----+----------+-------+ | id | name | slary | +----+-- ...
- mysql复制表
create table 表名 like 要复制的表名 //复制表结构 insert into 表名 select * from 要复制的表名 //复制数据 方法2,一般不推荐,如果后台加数据,可 ...
- 吴裕雄--天生自然MySQL学习笔记:MySQL 运算符
要介绍 MySQL 的运算符及运算符的优先级. MySQL 主要有以下几种运算符: 算术运算符 比较运算符 逻辑运算符 位运算符 算术运算符 MySQL 支持的算术运算符包括: 在除法运算和模运算中, ...
- 吴裕雄--天生自然MySQL学习笔记:MySQL 事务
MySQL 事务主要用于处理操作量大,复杂度高的数据.比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成 ...
随机推荐
- CentOS7.4安装部署openstack [Liberty版] (一)
一.OpenStack简介 OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目. OpenStack是一个 ...
- Android 显示Dialog的同时自动弹出软键盘;
需求大致就是这样的:用户点击按钮弹出Dialog,Dialog中有输入框,然后Dialog弹出后要自动弹出软键盘:(如果让用户自己手动点击输入框再弹出软键盘的话,用户体验太差了): 好的,需求大致就是 ...
- 五、html5表单
- webstorm命令行无法使用node-gyp进行编译
换成cmd命令即可:
- day3(第一周)周末作业
1.创建字符串变量的三种写法及其区别# 代码:单引号 ''# 双引号 ""# 多引号 ''' '''# 区别:单引号和双引号没有任何区别,一般用于单行字符:多行字符用多引号.## ...
- redis 的简单用法
使用 :下载完后 打开任务管理器 把redis_server 进程关掉, 切换到 E:\redis 中 redis-server.exe redis.windows.conf 打开一个 cmd ...
- 关于 java jdk 环境变量的配置
最近在学习java , 关于java 环境变量的配置,我想总结一下自己在这方面的经验,可供大家参考: 右键单击“我的电脑” --->"属性” ---> "高级属性设置& ...
- LeetCode 11. [👁] Container With Most Water & two pointers
盛最多水的容器 给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) .在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0).找 ...
- 20165205 2017-2018-2 《Java程序设计》第七周学习总结
20165205 2017-2018-2 <Java程序设计>第七周学习总结 教材学习内容总结 下载XAMPP并完成配置 完成XAMPP与数据库的连接 学会创建一个数据库 学会用java语 ...
- thinkphp在linux下报mkdir()错误
这个主要是由于缓存文件的权限不够,一般我们git下来的文件时,这个runtime是没有下来的. 解决办法:进入到TP项目下:修改父级目录权限为0777即可linux: chmod -R 777 ./r ...