2011-12-30 7 views
1

私は30,000のUPDATE行を持つSQLファイルを持っています。 phpmyadminでアップロードすると、特定の時点でフリーズし、すべてを更新しません。問題なく多くのSQLクエリを実行するにはどうすればよいですか?

30,000行すべてを問題なく実行する方法はありますか?または一度に200行を手動で実行する必要がありますか?

ラインの例:

UPDATE `table` SET `value1`='Some text', `value2`=0 `value3`=1 WHERE id=500; 

^私はそのような3万ラインを持っています。

+0

これは、「フリーズ」がいくつかのSQLエラーやバグや設定によるものかどうかによって決まると思われます。エラーメッセージはありますか?ログには何が表示されますか? – Yahia

+0

ええ、小規模なバッチで更新する方が良いです。 –

+0

これらの行のいくつかを表示できますか?私が得ようとしているのはこれです:WHERE句または値を計算する方法はありますか? –

答えて

5

PHPMyAdminのクエリ解析が遅いです。あなたはSSHアクセスを持っていない場合

$ mysql -uUsername -pPassword DatabaseName < script.sql 

は、あなたが(たとえば、FTP経由で)SQLスクリプトをアップロードすることができ、小型の書き込み:それはSSHを介してサーバにログインするとMySQLクライアントを使用してコマンドを実行するために多くの方が良いでしょうsystemexecまたは類似したPHP関数を使用してコマンドを呼び出すPHPスクリプト:

<?php 
system('mysql -uUsername -pPassword DatabaseName < script.sql'); 

次にブラウザを経由してスクリプトを起動します。

mysqlのパス(通常は/ usr/bin/mysql)とスクリプトファイルを必ず使用してください。

システム文字以外の文字セットを使用する場合は、add the default_character_setオプションも指定してください。

+0

ありがとう!!!!!!〜 – supercoolville