0

次のファイルをオンライン ディレクトリの 1 つに毎日ダンプしています。

dat-part2-489359-43535-toward.txt

数字は毎日ランダムに変化します。

ファイルをロードしようとする次のコードがあります。

mysql_query("LOAD DATA LOCAL INFILE 'dat-part2-%-toward.txt' 
          REPLACE INTO TABLE my_table
          FIELDS TERMINATED BY ',' ENCLOSED BY ''
          LINES TERMINATED BY '\r\n'
          IGNORE 1 LINES") or die(mysql_error());

もちろん運もありません。これを行う最善の方法は何ですか?

4

2 に答える 2

1

これがスケジュールされたジョブであると仮定すると、ファイル名テンプレートに一致する最新のファイルのディレクトリを確認してください。上記のファイルの名前を変数に保存し、変数をクエリにサブスクライブします。チェックアウトglob()

于 2011-01-27T20:33:40.837 に答える
0

私はシェルスクリプトまたはWindowsのcmdファイルを介してそれを行います。これは、mysqldumpまたは有効なSQLスクリプトを作成するプログラムを使用してファイルを作成したことを前提としています。

Windowsコマンドでdir/Bを実行して、ファイルのディレクトリを取得できます。したがって、dir / B> input.txtを実行してから、Windowsスクリプトを使用して入力ファイルを読み取り、各行について、mysqlクライアントを使用してファイルをパイプします。

@ echo off  set infile= %%1
for /f "eol= tokens=*
delims= usebackq" %%i in  (%infile%)
do (  mysql -u userName --password=pwd < %%i  )

私がWindowsスクリプトを書いたのは久しぶりですが、それはあなたにアプローチのアイデアを与えるはずです。

于 2011-01-27T20:37:27.347 に答える