MySQL复制表的常用的两种方法
来源:互联网 发布:linux 查看系统信息 编辑:程序博客网 时间:2024/06/07 01:35
MySQL服务的默认引擎是InnoDB
+--------+---------------------------------------------------------------------------
| Table | Create Table
+--------+---------------------------------------------------------------------------
| cs_bak | CREATE TABLE `cs_bak` (
`cs_id` int(8) NOT NULL AUTO_INCREMENT COMMENT 'id of thestudent''s course.',
`stu_id` int(8) NOT NULL,
`cs_name` varchar(50) DEFAULT 'vkebb',
PRIMARY KEY (`cs_id`),
KEY `stu_id` (`stu_id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 |
mysql> show engines;
+------------+---------+--------------
|Engine | Support | Comment
+------------+---------+--------------
| EXAMPLE |YES | Example stora
|CSV |YES | CSV storage e
|MyISAM |YES | Default engin
| BLACKHOLE |YES | /dev/null sto
| MRG_MYISAM |YES | Collection of
| InnoDB | DEFAULT | Supports tran
| ARCHIVE |YES | Archive stora
|MEMORY |YES | Hash based, s
| FEDERATED |YES | Federated MyS
+------------+---------+--------------
+------------+---------+--------------
|Engine
+------------+---------+--------------
| EXAMPLE
|CSV
|MyISAM
| BLACKHOLE |YES
| MRG_MYISAM |YES
| InnoDB
| ARCHIVE
|MEMORY
| FEDERATED |YES
+------------+---------+--------------
原表的结构:
mysql> show create table cs;
+-------+-----------------------------------------------------------------------------
| Table | Create Table
+-------+-----------------------------------------------------------------------------
| cs | CREATETABLE `cs` (
`cs_id` int(8) NOT NULL AUTO_INCREMENT COMMENT 'id of thestudent''s course.',
`stu_id` int(8) NOT NULL,
`cs_name` varchar(50) DEFAULT 'vkebb',
PRIMARY KEY (`cs_id`),
KEY `stu_id` (`stu_id`),
CONSTRAINT `cs_ibfk_1` FOREIGN KEY (`stu_id`) REFERENCES `stu`(`stu_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+----------------------------------------------------------------------------
+-------+-----------------------------------------------------------------------------
| Table | Create Table
+-------+-----------------------------------------------------------------------------
| cs
`cs_id` int(8) NOT NULL AUTO_INCREMENT COMMENT 'id of thestudent''s course.',
`stu_id` int(8) NOT NULL,
`cs_name` varchar(50) DEFAULT 'vkebb',
PRIMARY KEY (`cs_id`),
KEY `stu_id` (`stu_id`),
CONSTRAINT `cs_ibfk_1` FOREIGN KEY (`stu_id`) REFERENCES `stu`(`stu_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+----------------------------------------------------------------------------
(1)说明
我通过下面这条SQL语句快速的建立一个备份表,注意这种做法表的存储引擎也会采用服务器默认的存储引擎而不是源表的存储引擎,此种复制方法把表的内容也一起复制过来了。
注:as与()可以忽略,但建议使用,因为很其他的SQL产要求使用它们。
mysql> create table cs_bak1 as
-> (select *
-> from cs)
-> ;
mysql> show createtable cs_bak1;
+---------+-------------------------------------------------------------------------
| Table | Create Table
+---------+--------------------------------------------------------------------------
| cs_bak1 | CREATE TABLE `cs_bak1` (
`cs_id` int(8) NOT NULL DEFAULT '0' COMMENT 'id of the student''scourse.',
`stu_id` int(8) NOT NULL,
`cs_name` varchar(50) DEFAULT 'vkebb'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |//服务器默认的存储引擎等
+---------+--------------------------------------------------------------------------
+---------+-------------------------------------------------------------------------
| Table
+---------+--------------------------------------------------------------------------
| cs_bak1 | CREATE TABLE `cs_bak1` (
`cs_id` int(8) NOT NULL DEFAULT '0' COMMENT 'id of the student''scourse.',
`stu_id` int(8) NOT NULL,
`cs_name` varchar(50) DEFAULT 'vkebb'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |//服务器默认的存储引擎等
+---------+--------------------------------------------------------------------------
(2)说明
使用和cs_bak表相同的结构来创建一个新表,列名、数据类型、空指和索引也将复制,但是表的内容不会被复制。外键和专用的权限也没有被复制。
mysql> create tablecs_bak
-> like cs;
mysql> show createtable cs_bak;+--------+---------------------------------------------------------------------------
| Table | Create Table
+--------+---------------------------------------------------------------------------
| cs_bak | CREATE TABLE `cs_bak` (
`cs_id` int(8) NOT NULL AUTO_INCREMENT COMMENT 'id of thestudent''s course.',
`stu_id` int(8) NOT NULL,
`cs_name` varchar(50) DEFAULT 'vkebb',
PRIMARY KEY (`cs_id`),
KEY `stu_id` (`stu_id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 |
+--------+---------------------------------------------------------------------------
复制myisam速度是innodb到N倍,想了解到朋友请查看两种引擎的区别
- MySQL复制表的常用的两种方法
- MySQL复制表的常用的两种方法
- 两种常用MySql查询时间段的方法
- SQL Server 复制表及数据的两种方法
- SQL Server 复制表及数据的两种方法
- sql server 复制表的两种方法
- 常用的mysql复制参数
- 数组复制的几种常用方法
- mysql 使用过程中常用的两种临时表
- 创建线程的两种常用方法
- 线程常用的两种创建方法
- 复制MYSQL表结构的方法
- MySQL复制表数据到新表的方法
- MySQL复制表数据到新表的方法
- MySQL复制表数据到新表的方法
- MySQL复制表数据到新表的方法
- MySQL复制表数据到新表的方法
- MySQL复制表数据到新表的方法
- zlh and g_signal_new()
- 哲学名言名句汇总
- Css中需要注意的一些问题
- 熵最大定理 两种理解
- 自定义android的tab样式
- MySQL复制表的常用的两种方法
- Sequentially Sending Request to WebService Server
- cookie小试刀—编写servlet利用Cookie保存上次访问该servlet的时间
- Hibernate的Antlr在Weblogic中产生Jar冲突的原因及解决
- Junit 的error 和failer 的区别
- HTML5 绘制图形【4】
- 让XP SP3远程桌面支持“网络级别身份验证”
- ALV CHECKBOX
- input 变态