問題タブ [mysqlimport]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - 空白で区切られたテキスト ファイルを MySQL にインポートするにはどうすればよいですか?
大きな (24MB) テキスト ファイルを MySQL テーブルにインポートする必要があります。各行は次のようになります。
各フィールドの後には 1 つ以上のスペースがあり、最後のフィールドの末尾には改行の前に約 36 個のスペースがあります。
このようなファイルを MySQL にインポートするにはどうすればよいですか? ドキュメントから、LOAD DATA はすべてのフィールドがまったく同じ文字列で終了することを期待しているようです。私が試してみました
しかし、MySQL は複数のスペースのシーケンスを空のフィールドを区切るものとして解釈します。
何か案は?
linux - mysqlimport、改行、および文字エンコーディングについて (私は思う)
まず、いくつかの開示: 私は Linux 管理者ではなく、私の Linux 管理者はプログラマーではありません。
mysqlimport
とはいえ、毎日生成されるテキスト ファイルをインポートするコマンドを実行する cron ジョブがあります。このファイルがどのように作成されるかについて、私は制御も関与もしていません。試行錯誤の結果、テキスト ファイルが Windows マシンで生成されていることが判明したため、lines-terminated-by
引数には を指定する必要があり\r\n
ました。先週、正しく動作しなくなりましたが、ファイルが現在 Linux で生成されていることが原因であると判断したため、単に\n
. 私の理解 (完全には明確ではありません) は、使用されるプラットフォームとエンコーディングを決定するテキスト ファイルを誰が生成するかに依存するということです。
コマンドを実行するシェルスクリプトがありますmysqlimport
。正しいエンコーディングを提供すると、すべてが完全に機能します。しかし、そもそも誰がテキスト ファイルを作成するのかわからないので、エンコーディングが何であるかを判断し、適切な改行文字を実装する方法はありますか? (「エンコーディング」は適切な用語ですか?)
mysql - mysqlimport と二重引用符
タブ区切りの大きなテキスト ファイル (約 120,000 レコード、50 MB) があり、mysqlimport を使用して MySQL に押し込もうとしています。二重引用符で囲まれているフィールドと、そうでないフィールドがあります。スイッチを使用していますfields-optionally-enclosed-by='\"'
が、一部のフィールド値自体に二重引用符 (インチを示す) が含まれているため、区切られたフィールド値が "ABCDEF19" のようなものである可能性があります。
ファイルのソースを制御できないため、そこでフォーマットを変更することはできません。スイッチを削除しようとしましたfields-optionally-enclosed-by
が、値を囲む二重引用符がインポートされます。
彼は、値に引用符を付けてレコードを作成すると、ひどく混乱しています。一部のフィールドはオプションで引用符で囲まれているが、引用符が含まれている可能性があることを mysqlimport に伝える方法はありますか? フィールド値の二重引用符をエスケープするために、おそらくグローバル検索と置換を考えましたか? または他の提案はありますか?
mysql - MySqlImport-適切な形式ではない日付フィールドをインポートします
(他のフィールドの中でも)次のような形式の日付フィールドを持つcsvファイルがあります。
mysqlimportを実行すると、他のフィールドは正しくインポートされますが、このフィールドは残ります 0000-00-00 00:00:00
この日付を正しくインポートするにはどうすればよいですか?ファイルを適切な形式にするには、最初にファイルに対してsed / awkコマンドを実行する必要がありますか?もしそうなら、それはどのようになりますか?数字の代わりに月が綴られているという事実は重要ですか?
mysql - mysqlimportを使用して結果を蓄積する方法
私はmysqlimportが好きです。これは、高速で比較的使いやすいものです(たとえば、20 GBを超えるデータファイルをインポートするためのPHPまたはPythonフロントエンドよりもはるかに高速です)。しかし、私は次のことをしたいと思います。次のようなデータファイルがあります。
フィールドとしてvarchar, varchar, int
そして、最終結果をとして保存し['cat', 'dog', 11]
たいと思います。つまり、結果が存在しない場合はデータベースに挿入し、ケースを無視して存在する場合は(数学的な意味で)既存の結果に追加します。最初の2つのフィールドの。私はPythonで動作するソリューションを持っていますが、mysql(import)でネイティブを探しています。
mysql - 最初にデータベーステーブルを作成せずに、タブ区切りファイルをMySQLにインポートできますか?
タイトルにあるように、データを含むタブ区切りのテキストファイルがたくさんあります。
「CREATETABLE」ステートメントを使用してすべてのテーブルを手動で設定すると、「loaddata」または「mysqlimport」を使用してそれらを待機中のテーブルにインポートできることを知っています。
しかし、MySQLにタブファイルに基づいてテーブルを自動的に作成する方法はありますか?あるべきだと思われます。(MySQLは各列のデータ型を推測する必要があるかもしれませんが、タブファイルの最初の行でそれを指定できます。)
mysql - MySQLへのテキストのインポート:奇妙な形式
mysqlimportを使用して、.txtファイルからMySQLデータベーステーブルにデータをインポートしています。OK(エラーメッセージなし)をインポートしているように見えますが、表示すると非常に奇妙に見え、期待どおりに検索できません。
詳細はこちらです。元のテキストファイルはUTF-8に保存され、レコードは(テキストエディタで)次のようになります。2番目のフィールドには改行が含まれます。
インポートするデータベーステーブルは非常に単純です。
ファイルをインポートするとき、使用するコマンドは次のとおりです。
次に、MySQLにレコードを表示するように依頼した場合に表示される内容は次のとおりです。
そのため、スペースまたは奇妙なエンコーディングエクストラがテキストに追加されているように見えます。
そして、データベースクエリの問題は次のとおりです。
何も返しません。また、スペースを追加することもありません。
このコマンドだけが何かを返します
誰かが何が起こっているのか推測できますか?エンコーディングの問題だと思いますが、うまくいきません。
- - - アップデート - - - -
OK、データベースと接続エンコーディングを確認しました。
そしてshow table status
、テーブルはですと言いますlatin1_swedish_ci
。
「Western(Windows Latin 1)」(Snow LeopardでTextEditを使用)のテキストファイルを再保存し、上記と同じコマンドを使用してインポートしようとしました。しかし、私はまだ同じエンコーディングの問題を抱えています。
私も試してみましたが、運が悪かったのです。
- UTF-8を使用して新しいテーブルを作成し、既存のファイルをインポートします
- 以前に正常にインポートした別のテキストファイルにテキストをコピーして貼り付け、それをインポートしようとしています。
まだ完全に困惑している:(((
mysql - mysqlimportを使用してmysqldump--databasesの結果を読み取る方法
を使用してMySQLデータベース全体を正常にダンプしました
素敵な.txtファイルを生成します。ただし、ファイル全体を一度にMySQLに読み戻す方法がわかりません。mysqlimportは、一度に1つのテーブルのみを必要としているようです。
mysql - ファイル名がテーブル名と異なる mysqlimport を使用する
私は mysqlimport で遊んでいて、ファイル名がテーブル名と同じでなければならないという制限に遭遇しました。これを回避する方法はありますか?
他のプロセスで使用されているため、ファイルの名前を変更することはできません。また、ファイルが多数あり、一部は非常に大きいため、ファイルをコピーしたくありません。
LOAD INFILE ではなく mysqlimport を使用したい。
編集:残念ながら、これはWindowsで実行する必要があるため、シンボリックリンクを使用したトリックはありません。