本文共 1318 字,大约阅读时间需要 4 分钟。
mysql复制表,可通过如下方式操作:
使用如 insert into table1 select * from table2格式的语句,可以从表table2中拷贝一份数据插入表table2,要求表字段一致。
如果table1之前不存在,则使用create table1 as select * from table2,则可复制table2的表字段和数据。但不会复制自增主键以及索引信息。
如果想向上一步一样,在复制一张表的同时将其自增主键和索引等信息一并复制,
可使用create table1 like table2;insert into table1 select * from table2。
mysql备份表,可通过如下方式操作:
有时备份数据需将表的结构及数据导出成文件备份,则可使用mysqldump备份
如下:mysqldump -h127.0.0.1 -P3306 -uroot -p123 table > '/tmp/table.sql'
mysqldump还有一些常用的配置常数,以供不同的使用场景使用:
导出的备份文件table.sql,可用来恢复表。使用如下:
mysqldump -h127.0.0.1 -P3306 -uroot -p123 dbName -e "source /tmp/table.sql"
除了导出为sql文件外还可以导出到csv文件,使用命令:
select * from table into outfile '/tmp/table.csv'
使用该命令会生成csv文件保存在mysql服务端,如果当前操作的命令段和mysql服务端不在同台机上,则当前机器目录不会生成csv文件。且文件生成位置受secure_file_priv限制,其值若为empty则不限制生成位置,若为一个路径字符串,则只可保存到该路径。若为NULL,则禁止使用into outfile命令备份。
使用时要注意tmp目录下没有table命名的csv文件,否则会报错。使用备份csv文件,将数据写入表,如下:
load data infile '/tmp/table.csv' into table table1
该命令使用的时服务端上的tmp目录文件,如果加上local,则可用命令客户端目录下的文件,实际上使用local就是将本地csv文件发送到服务端再执行。
需要注意的时select… into outfile不会保存表结构,只导出数据。转载地址:http://jukai.baihongyu.com/