2016-05-25 23 views
0

importオプションを使用してSQLテーブルとしてCSVファイルをインポートしました。これはPHPMyAdminです(これはわかりやすいためです)。ここで列名は "COL 1、COL 2、..."であり、目的の列名は表の最初の行です。MySQLテーブルの列名を最初の行に変更します

データベースのすべてのテーブルに対して、列名を最初の行の値に変更するにはどうすればよいですか?

Hereは、一度に1つの列名を変更する方法ですが、データベースの各テーブルに列名が多すぎますので、すべてのテーブルに一度に適用したいと思います。

これをやや簡単に行う方法はありますか? CSVファイルをインポートする際にこれを試して組み込む必要がありますか?

+2

これを実行できるスクリプトを書くこともできますが、最も簡単で最良の方法は、データを再度インポートすることです。今回は、「ファイルの最初の行にテーブルの列名が含まれています。あなたのデータ型が間違っている可能性があります(おそらくvarcharカラムしか持たない(したい)ので) – Solarflare

+0

@Solarflare私はそれを正確にやり遂げました。しかし、スクリプトを書くことが非常に難しいのだろうか? –

+0

私はPHPスクリプトについて考えていると書いていましたが、 'show tables'を使ってテーブルを取得し、各テーブル' show columns from table'を使ってデータ型を取得し、テーブルの最初の行を取得して削除しますそれを時々識別するのは難しいかもしれません)、各列に対して 'alter table table change oldname newname datatype'を実行します。リンクのスクリプト版です(ただし、再インポートで可能だったデータ型は修正されません)。 SQLストアドプロシージャでは、information_schemaを使用することができ、カラムの時間がより長くなります(phpは1つのクエリを持つ配列内にあります)。 – Solarflare

答えて

2

インポート時に、「ファイルの最初の行にテーブルの列名が含まれています(このチェックボックスをオフにすると、最初の行がデータの一部になります)」というチェックボックスがあります。ボックスは、追加のスクリプトを記述するか、手動で何かを変更することからあなたを節約、列名として最初の行を使用することを確認する

The first line of the file contains the table column names (if this is unchecked, the first line will become part of the data)

関連する問題