19

我有一个要求,我必须只对表的一列进行 mysql 转储。由于该表的列太多,我不想转储整个表。我必须将这个表的转储从一台服务器转移到另一台服务器。知道我该怎么做吗?

4

3 回答 3

20

如果您想获取包含架构的 mysql 转储,可以按照以下步骤完成:

创建一个临时表:

create table temp_table like name_of_the_original_table;

将数据复制到 temp_table 中:

insert into temp_table select * from name_of_the_original_table;

删除不必要的字段:

alter table temp_table drop column somecolumn;

发布这个,你可以通过运行来获取 mysqldump:

mysqldump -u <username> -p <password> databasename temp_table

如果打算进行数据转储(没有架构),您可以运行以下命令:

select * from sometable into outfile '/tmp/datadump' fields terminated by '\t' lines terminated by '\n';
于 2015-07-07T07:12:21.793 回答
9
mysql> CREATE TABLE `tempTable` AS SELECT `columnYouWant` from `table`;
$> mysqldump yourDB tempTable > temp.sql

将 temp.sql 复制到目标服务器,然后在目标服务器上

$> mysql yourDB < temp.sql
mysql> RENAME TABLE `table` TO `tableBackup`, `tempTable` TO `table`;
于 2017-09-27T17:59:11.913 回答
8

选择列成文件?

Select col from table into outfile 'fileame'
于 2013-03-07T06:34:05.393 回答