Web サイトのページが読み込まれるたびに実行されるクエリがあります。簡単な形式では、ユーザーの IP がデータベースにあるかどうかを確認し、そうでない場合は追加し、ある場合は何もしません。これを達成するために2つのクエリを実行する必要がないように(1つはチェック用、もう1つは挿入用)、次のSQLを使用しています。
INSERT IGNORE INTO `limits`
SET `ip` = :ip, `limit` = :limit
これは、既に存在する場合は何もせず、存在しない場合:ip
はレコードを作成することを意図しています。正常に動作しますが、ページが読み込まれるたびにテーブルの主キーが増加していることに気付きました。
たとえば、主キー フィールドが呼び出されid
、それがint(11) AUTO_INCREMENT
. id
データベースの最初のレコードの値は明らかに1
. ページを 10 回更新した後11
、IP が変更されておらず、クエリで新しいレコードが挿入されていないにもかかわらず、値が になりました。
id
実行のたびにクエリがフィールドを更新しないようにする方法はありますか?