MySQL 复制表
如果我们需要完全的复制MySQL的数据表,包括表的结构,索引,默认值等。 如果仅仅使用CREATE TABLE … SELECT 命令,是无法实现的。
本章节将为大家介绍如何完整的复制MySQL数据表,步骤如下:
使用 SHOW CREATE TABLE 命令获取创建数据表(CREATE TABLE) 语句,该语句包含了原数据表的结构,索引等。
复制以下命令显示的SQL语句,修改数据表名,并执行SQL语句,通过以上命令 将完全的复制数据表结构。
如果你想复制表的内容,你就可以使用 INSERT INTO … SELECT 语句来实现。
-from 树懒学堂 - 一站式数据知识平台
mysql拷贝表 *** 作我们会常常用到,下面就为您详细介绍几种mysql拷贝表的方式,希望对您学习mysql拷贝表方面能够有所帮助。
假如我们有以下这样一个表:
id username password
-----------------------------------
1 admin
2 sameer
3 stewart
CREATE TABLE IF NOT EXISTS `admin` ( `id` int(6) unsigned NOT NULL auto_increment, `username` varchar(50) NOT NULL default '', `password` varchar(100) default NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;
1 下面这个语句会拷贝表结构到新表newadmin中。 (不会拷贝表中的数据)
CREATE TABLE newadmin LIKE admin
2 下面这个语句会拷贝数据到新表中。 注意:这个语句其实只是把select语句的结果建一个表。所以newadmin这个表不会有主键,索引。
CREATE TABLE newadmin AS ( SELECT FROM admin )
3 如果你要真正的复制一个表。可以用下面的语句。
CREATE TABLE newadmin LIKE admin; INSERT INTO newadmin SELECT FROM admin;
4 我们可以 *** 作不同的数据库。
CREATE TABLE newadmin LIKE shopadmin; CREATE TABLE newshopnewadmin LIKE shopadmin;
5 我们也可以拷贝一个表中其中的一些字段。
CREATE TABLE newadmin AS ( SELECT username, password FROM admin )
6 我们也可以讲新建的表的字段改名。
CREATE TABLE newadmin AS ( SELECT id, username AS uname, password AS pass FROM admin )
7 我们也可以拷贝一部分数据。
CREATE TABLE newadmin AS ( SELECT FROM admin WHERE LEFT(username,1) = 's' )
8 我们也可以在创建表的同时定义表中的字段信息。
12--------------新表 ↓ 要复制的源表↓Select Into newTable From sourceTable
这个语句会将sourceTable结构包括数据全部复制一份放到新表中newTable 是新表的名字,在执行前newTable 表不能已存在,如果只复制结构不要数据
12Select top 1 Into newTable From sourceTable --少要点只要一行truncate table newTable --清除掉数据
关于
select
into
语句:
SQL
SELECT
INTO
语句可用于创建表的备份复件。
SELECT
INTO
语句
SELECT
INTO
语句从一个表中选取数据,然后把数据插入另一个表中。
SELECT
INTO
语句常用于创建表的备份复件或者用于对记录进行存档。
SQL
SELECT
INTO
语法
您可以把所有的列插入新表:
SELECT
INTO
new_table_name
[IN
externaldatabase]
FROM
old_tablename
或者只把希望的列插入新表:
SELECT
column_name(s)
INTO
new_table_name
[IN
externaldatabase]
FROM
old_tablename
SQL
SELECT
INTO
实例
-
制作备份复件
下面的例子会制作
"Persons"
表的备份复件:
SELECT
INTO
Persons_backup
FROM
Persons
IN
子句可用于向另一个数据库中拷贝表:
SELECT
INTO
Persons
IN
'Backupmdb'
FROM
Persons
如果我们希望拷贝某些域,可以在
SELECT
语句后列出这些域:
SELECT
LastName,FirstName
INTO
Persons_backup
FROM
Persons
SQL
SELECT
INTO
实例
-
带有
WHERE
子句
我们也可以添加
WHERE
子句。
下面的例子通过从
"Persons"
表中提取居住在
"Beijing"
的人的信息,创建了一个带有两个列的名为
"Persons_backup"
的表:
SELECT
LastName,Firstname
INTO
Persons_backup
FROM
Persons
WHERE
City='Beijing'
SQL
SELECT
INTO
实例
-
被连接的表
从一个以上的表中选取数据也是可以做到的。
下面的例子会创建一个名为
"Persons_Order_Backup"
的新表,其中包含了从
Persons
和
Orders
两个表中取得的信息:
SELECT
PersonsLastName,OrdersOrderNo
INTO
Persons_Order_Backup
FROM
Persons
INNER
JOIN
Orders
ON
PersonsId_P=OrdersId_P
1、使用plsql连接上数据库,展开Tables菜单项,下面出现的就是数据库表。
2、在数据库表tblTest上面点击鼠标右键,选择Query data,此项的目的是查询这张数据库表的数据。
3、点击完成Query data之后,右侧会出现一个SQL语句的窗口,默认有一条select from 表名的sql语句,下方还有一个列表,展示这张表中的已有数据。
4、然后写一条insert插入的SQL语句,写完之后,选中这条SQL,点击左上角的次轮状图标,然后,SQL语句下方会出现1 row inserted in xx seconds,表示语句执行成功。此时数据还没有真正写入数据库 insert插入sql格式:insert into 表名(字段1, 字段2, 字段n) values(值1, 值2, 值n)。
5、在Oracle数据库中,对数据的变更还需要点击Commit按钮,也就是左上角向下箭头的图标,如果不点击这个按钮,数据其实不会真正存入数据库。点击Commit按钮后,会d出一个Confirm窗口,此时点击Yes就将数据写入数据库,点击No则不提交到数据库。
什么系统?两个库是不是在同一台机?
linux下个人做法:
1同一台机
用mysqldump导出表数据(具体使用可以查一下)
mysqldump -h host -P port -p password -u user database --default-character-set=utf8 --add-drop-table tablename -r /tmp/tablesql
再导入数据
mysqldump -h host -P port -p password -u user database tablename </tmp/tablenamesql
或者在进入mysql后用source命令导入。
2不同的机,就需要先把数据文件导出,然后复制到另外一台机,再进行1的导入 *** 作。
windows下没试过,一般都直接用phpMyAdmin来 *** 作了,界面 *** 作没什么说的。
当你使用一种直接备份方法时,你必须保证表不在被使用。如果服务器在你则正在拷贝一个表时改变它,拷贝就失去意义。保证你的拷贝完整性的最好方法是关闭服务器,拷贝文件,然后重启服务器。如果你不想关闭服务器,要在执行表检查的同时锁定服务器。如果服务器在运行,相同的制约也适用于拷贝文件,而且你应该使用相同的锁定协议让服务器“安静下来”。假设服务器关闭或你已经锁定了你想拷贝的表,下列显示如何将整个samp_db数据库备份到一个备份目录(DATADIR表示服务器的数据目录):%cd DATADIR%cp -r samp_db /usr/archive/mysql单个表可以如下备份:%cd DATADIR/samp_db%cp member /usr/archive/mysql/samp_db%cp score /usr/archive/mysql/samp_db 当你完成了备份时,你可以重启服务器(如果关闭了它)或释放加在表上的锁定(如果你让服务器运行)。要用直接拷贝文件把一个数据库从一台机器拷贝到另一台机器上,只是将文件拷贝到另一台服务器主机的适当数据目录下即可。要确保文件是MyIASM格式或两台机器有相同的硬件结构,否则你的数据库在另一台主机上有奇怪的内容。你也应该保证在另一台机器上的服务器在你正在安装数据库表时不访问它们。 重点是这个:要确保文件是MyIASM格式或两台机器有相同的硬件结构
以上就是关于mysql 数据库怎么复制一张表全部的内容,包括:mysql 数据库怎么复制一张表、mysql copy复制拷贝表数据及结构的几种方式、在sqlserver数据库中怎么复制相同的表结构的方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)