如何对表的选定列进行mysql转储

use*_*195 12 mysql mysql5

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

ric*_*ydj 13

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

创建临时表:

create table temp_table like name_of_the_original_table;
Run Code Online (Sandbox Code Playgroud)

将数据复制到temp_table:

insert into temp_table select * from name_of_the_original_table;
Run Code Online (Sandbox Code Playgroud)

删除不必要的字段

alter table temp_table drop column somecolumn;
Run Code Online (Sandbox Code Playgroud)

发布这个,您可以运行以下命令获取mysqldump:

mysqldump -u <username> -p <password> databasename temp_table
Run Code Online (Sandbox Code Playgroud)

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

select * from sometable into outfile '/tmp/datadump' fields terminated by '\t' lines terminated by '\n';
Run Code Online (Sandbox Code Playgroud)

  • 如果源表中有很多行,请确保在填充目标表之前从目标表*中删除列. (2认同)

Ste*_*veP 6

选择列到文件中?

Select col from table into outfile 'fileame'
Run Code Online (Sandbox Code Playgroud)


chi*_*NUT 5

mysql> CREATE TABLE `tempTable` AS SELECT `columnYouWant` from `table`;
$> mysqldump yourDB tempTable > temp.sql
Run Code Online (Sandbox Code Playgroud)

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

$> mysql yourDB < temp.sql
mysql> RENAME TABLE `table` TO `tableBackup`, `tempTable` TO `table`;
Run Code Online (Sandbox Code Playgroud)