-1

別のクエリで投稿したように、ツイートを含む MYSQL テーブルがあり、PHP を使用してデータを入力します。重複した投稿がないことを確認するために、更新前にテーブルの最後の ID をチェックします。これが、retweet_count をチェックしようとすると失敗する理由だと思います (既に保存されているツイートは無視されます)。

私の回避策は、同じスクリプトを使用して 2 番目のテーブルにもデータを入力し、次の 2 つの SQL コマンドを実行することです。

 UPDATE table1 JOIN table2 ON table2.col1 = table1.col1 SET table1.col2 = table2.col2;

に続く

 TRUNCATE TABLE table2;

最初のテーブルを更新してから、2 番目のテーブルを空にする (削除するのではなく、単に切り捨てる) ので、繰り返すことができます。

問題は、JOIN コマンドが最初に実行され、次に TRUNCATE コマンドが実行されるように、PHP でどのように記述されるかということです。ありがとう

4

1 に答える 1

0

あなたが提案していること-冗長データを保存し、本番システムで定期的に切り捨てを使用してクリーンアップする-は最善のアプローチではありません。

代わりに、自動コミットをオフにして、START TRANSACTION、COMMIT、およびオプションでROLL BACK(http://dev.mysql.com/doc/refman/5.1/en/commit.html)を使用することを検討することをお勧めします。

一度にいくつかのことを行う作業単位を作成でき、提案していることに依存する必要がないことがわかります。

于 2012-05-11T19:22:26.210 に答える