У меня есть таблица MySQL в формате, показанном ниже:
mysql> select event_time, count, result, pcm_id from Events_CallMeBack_2011_08_05 WHERE pcm_id=1566;
+---------------------+-------+--------+--------+
| event_time | count | result | pcm_id |
+---------------------+-------+--------+--------+
| 2011-08-05 23:45:04 | 0 | NULL | 1566 |
+---------------------+-------+--------+--------+
1 row in set (0.00 sec)
Проблема в том, что когда я запускаю запрос UPDATE, модифицирующий столбец результата, событие-время также обновляется как побочный эффект.Я понятия не имею, почему это происходит: я, конечно, не хочу, чтобы поле event_time обновлялось при попытке обновить столбец результата.
Вот запрос:
UPDATE Events_CallMeBack_2011_08_05 SET result ='D' WHERE pcm_id = '1566'
Вотрезультирующий столбец после выполнения инструкции UPDATE.
mysql> select event_time, count, result, pcm_id from Events_CallMeBack_2011_08_05 WHERE pcm_id=1566;
+---------------------+-------+--------+--------+
| event_time | count | result | pcm_id |
+---------------------+-------+--------+--------+
| 2011-08-20 19:40:21 | 0 | D | 1566 |
+---------------------+-------+--------+--------+
1 row in set (0.00 sec)
Столбец event_time был обновлен до текущего локального времени сервера mysql.
Мой первоначальный анализ состоит в том, что mysql автоматически обновляет event_time (TIMESTAMP) столбец в операторах обновления.Оператор CREATE TABLE не определяет это, поэтому я не знаю, почему это происходит.
Создать оператор:
strSql = "CREATE TABLE " + strTableName +
"(id INT NOT NULL, event_time TIMESTAMP,....
Таблица описана ниже.
mysql> describe Events_CallMeBack_2011_08_05;
+------------+-------------+------+-----+-------------------+-----------------------------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+-------------------+-----------------------------+
| id | int(11) | NO | | NULL | |
| event_time | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
| event_code | varchar(30) | YES | | NULL | |
| count | int(11) | YES | | 0 | |
| result | varchar(1) | YES | | NULL | |
| pcm_id | int(11) | NO | PRI | NULL | auto_increment |
+------------+-------------+------+-----+-------------------+-----------------------------+