0

私はトラフィック交換を行っており、サイトが表示されるたびに、次のようなテーブルに挿入する必要があります。

-ユーザー
サイト

ユーザーのデフォルトは1で、INSERT IGNOREの場合、同じままの列が必要だと思ったので、挿入しません。

私の現在のクエリ:

$db->Query("INSERT IGNORE INTO `surfed_site` (site) VALUES('".$sit['id']."')");

私は約85人のオンラインユーザーを抱えていますが、1秒間の更新で、テーブルの0から750になります。これは、ユーザーがサイトを挿入する前に20秒間表示する必要があるため不可能です。

私のINSERTIGNOREが機能していないと思いますが、誰かが私が間違っていることを確認するために私を導くことができますか?

4

1 に答える 1

1

そのサイトが主キーであると確信していますか?

INSERT IGNOREを機能させるには、挿入された値をプライマリ/ユニウエキーとして宣言する必要があります

IGNOREキーワードを使用すると、INSERTステートメントの実行中に発生したエラーは代わりに警告として扱われます。たとえば、IGNOREがない場合、テーブル内の既存のUNIQUEインデックスまたはPRIMARY KEY値を複製する行は、重複キーエラーを引き起こし、ステートメントは中止されます。IGNOREを使用しても、行は挿入されませんが、エラーは発行されません。

http://dev.mysql.com/doc/refman/5.5/en/insert.html

次のものが存在しない場合は、主キーを追加します。

ALTER TABLE surfed_site ADD PRIMARY KEY (site);
于 2012-11-16T15:35:30.417 に答える