Хорошо, если вы создадите таблицу daily_record
следующим образом:
CREATE TABLE daily_record (
pageID INT,
record_date DATE,
count INT,
PRIMARY KEY (pageID,record_date),
INDEX idxPageID (pageID)
)
Затем вы можете использовать команду:
INSERT INTO daily_record (
pageID,record_date,`count`
) VALUES (
1,'2011-03-31',32
) ON DUPLICATE KEY UPDATE `count`=32;
Очевидно, что pageID / record_date / count будет предоставленвызывающий код.Это эффективно создает запись для pageID / дня с заданным счетчиком или, если запись для pageID / дня уже существует, то устанавливает счетчик для предоставленного значения.
Использование типа столбца DATE предотвращаетполучение бесплатной метки времени, НО это не особенно полезно для этой таблицы - как вы ее описываете - поскольку вас не волнуют часы / минуты / секунды.
Ключом здесь является уникальный индекс, созданный PRIMARY KEY...
линия.Если его уникальность будет нарушена вставкой, то вместо этого может произойти обновление.