Q:PHP5でPDOを使って MYSQLの5.1.30または、5.4.0を使用しているのですが 以下のようなSQLがあり、COLUMB = B の部分で Bの値が変動して、10万回実行するようなSQLがあります。 UPDATE TESTA SET DEL=1 WHERE COLUMA = A AND COLUMB = B これを、TESTAが動的に34回変動してその中で毎回、10万回実行するのは 結構なSQL発行回数になるので、COLUMB IN (B,B1,B2・・・・)みたいな 感じで、SQLの実行回数は、34回にして、Bの値をINで渡したいと 思うのですが、INの値に、10万個を渡すのは可能でしょうか? それを行った場合に、最初の、UPDATE文を10万回するのと、 INにして、一回のSQLにした場合に、処理の負荷や、処理時間などは改善されますか? ほかに、こういう方がいいのではとかあれば教えて欲しいです。 それと、このSQL文が結構長いと思うのですが、SQL文の長さに関しても上限って あるんですかね? 自分の見解としては、TEXTフィールド複数もったテーブル構造が 可能なので、特に、SQL文の長さに対しての上限はないと思うのですが。 SQL文が何バイト越えたら、レプリケーション出来ないとかあるのでしょうか? わかる方がいたら、教えて欲しいです。 A:回答
Q:C# 2.0で、下記のような簡単な文字列編集プログラムを生成したいと思います。 この開発を簡単にする、SQL文字列解析のためのクラスライブラリはありますでしょうか? ・クラスライブラリは、無償で使用できるものに限ります。 ・ヘルプが英語である場合は、下記の処理に使用するメソッドへのリンクを直接ご紹介いただければと思います。 +++++ 1.Oracle 9i~10gR2用のSQLスクリプトファイルを読み取る。 そのスクリプトには、INSERT文が複数書かれている。 (例:INSERT INTO USER_MASTER (USERID, USERNAME) VALUES ('USER01', 'YAMADA'); INSERT INTO SHOHIN_MASTER (SHOHINID, SHOHINNAME) VALUES ('ITEM01', 'SHOHIN01'); ...) 2.このINSERT文によってINSERTされるレコードを、UPDATEするためのUPDATE文を生成し、 別名のテキストファイルにして保存する。 (例:UPDATE USER_MASTER SET USERNAME = 'YAMADA' WHERE USERID = 'USER01'; UPDATE SHOHIN_MASTER SET SHOHINNAME = 'SHOHIN01' WHERE SHOHINID = 'ITEM01'; ...) どのテーブルについて、どのフィールドをUPDATEするかは、ハードコーディングでOK。 +++++A:回答
Q:【PostgreSQL】PHPとPostgreSQLの組み合わせで、例えば以下のようなソースがあるとします。 複数のユーザーが単一行を書き換える場合で、 間にSELECTで得たデータを必要とする処理があるので、あるユーザーが$query2のUPDATEを終了するまで$query1のSELECTをさせたくありません。 このような場合のトランザクションはどのようにしたら良いのでしょうか? どうも隔離レベルの問題なのか何なのか、SELECTの前にBEGIN、UPDATE後にCOMMITさせても上手くいきません。 このような処理の場合の適切なトランザクションを下記ソースを書き換える形で教えてください。 $sql1 = "SELECT data1 FROM table1 WHERE deta2 = '123';"; $query1 = pg_query($sql1); $array = pg_fetch_array($query); // PHP側での処理を挟む $buff = $array[data1] . $_POST[comment] $sql2 = "UPDATE table1 SET data1 = '$rep' WHERE deta2 = '123';"; $query2 = pg_query($sql2); A:回答