web-dev-qa-db-ja.com

テーブルの選択された列のmysqlダンプを取得する方法

テーブルの1列だけのmysqlダンプを取得する必要があるという要件があります。そのテーブルには列が多すぎるので、テーブル全体をダンプしたくありません。このテーブルのダンプをあるサーバーから別のサーバーに取得する必要があります。どうすればこれを行うことができますか?

15
user1085195

スキーマを含む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';
13
rickydj

列をファイルに選択しますか?

Select col from table into outfile 'fileame'
5
SteveP
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`;
4
chiliNUT