INSERT INTO ... ON DUPLICATE KEY UPDATEクエリがありますが、少なくとも私が知る限り、何らかの理由でmysqlサーバーによって無視されています。
既存の行の更新をキャッチしています。
「id」の主キーがあり、part_noはUniqueとしてリストされています。
クエリは次のとおりです。
INSERT INTO parts_prices (cost,
chatsworth,
atlanta,
north_carolina,
new_jersey,
arizona,
colorado,
miami,
indianapolis,
ohio,
oregon,
dallas,
san_antonio,
washington,
memphis,
alt_sup,
part_no)
VALUES (0.00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '', 'HS3163')
ON DUPLICATE KEY UPDATE
cost=VALUES(cost), chatsworth=VALUES(chatsworth), atlanta=VALUES(atlanta), north_carolina=VALUES(north_carolina), new_jersey=VALUES(new_jersey), arizona=VALUES(arizona), colorado=VALUES(colorado), miami=VALUES(miami),
indianapolis=VALUES(indianapolis), ohio=VALUES(ohio), oregon=VALUES(oregon), dallas=VALUES(dallas), san_antonio=VALUES(san_antonio), washington=VALUES(washington), memphis=VALUES(memphis), alt_sup=VALUES(alt_sup)
最初の列は小数で、次にintの束であり、最後の2つはvarcharsです。これは部品リストデータベースのエントリです(部品番号はたまたまリストされていますが、実際にはまだありません)。(last_modified列を使用して)すべての部品番号のリストを反復処理していますが、この特定のクエリはタイムスタンプを更新しません。
これは、行の情報が実際に変更されていないためでしょうか(指定されたすべての値が初期値と同じです)。
クエリは、データベース内の(かなりの数の)以前のエントリに対して機能しました。
[編集]PHPスクリプトからのクエリで応答エラーをチェックしましたが、直接(phpmyadminを使用して)エラー文字列を返しません。[/編集]