とりあえず答えだけ
IDをプライマリキーに設定
CREATE TABLE `my_table` (
`pri_id` int(10) unsigned NOT NULL,
`update_time` date NOT NULL,
PRIMARY KEY (`pri_id`)
) ENGINE=InnoDB;
INSERTクエリ
INSERT INTO `my_table`
(pri_id, update_time) VALUES
(1, '2016-02-13'),
(2, '2016-02-14')
ON DUPLICATE KEY UPDATE update_time = VALUES(`update_time`);
キーポイント
ON DUPLICATE KEY UPDATE update_time = VALUES(update_time
);
公式リファレンスを読む方はこちら
UPDATE 句で VALUES(col_name) 関数を使用して、INSERT ... ON DUPLICATE KEY UPDATE ステートメントの INSERT 部分からカラム値を参照できます。つまり、ON DUPLICATE KEY UPDATE 句にある VALUES(col_name) は、重複キーの競合が発生していない場合に挿入される col_name の値を参照します。この関数は、複数の行を挿入する際に特に役立ちます。VALUES() 関数は、INSERT ... UPDATE ステートメントの中でだけ意味を持ち、そうでなければ NULL を返します。
例:
mysql
INSERT INTO table (a,b,c) VALUES (1,2,3),(4,5,6)
ON DUPLICATE KEY UPDATE c=VALUES(a)+VALUES(b);
そのステートメントは、次の 2 つのステートメントと同一です。
mysql
INSERT INTO table (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE c=3;
INSERT INTO table (a,b,c) VALUES (4,5,6)
ON DUPLICATE KEY UPDATE c=9;