on update CURRENT_TIMESTAMP для полей типа timestamp

Sepuka

Новичок
on update CURRENT_TIMESTAMP для полей типа timestamp

Почему запрос вида:
CREATE TABLE IF NOT EXISTS `table` (
`id` INT NOT NULL AUTO_INCREMENT ,
`phone` VARCHAR( 11 ) NOT NULL ,
`customerid` INT NOT NULL ,
`packageid` INT NOT NULL ,
`first` BOOL NOT NULL ,
`sum` FLOAT NOT NULL ,
`received` TIMESTAMP NOT NULL,
`attempts` INT NOT NULL DEFAULT 0,
`last` TIMESTAMP NOT NULL ,
`reported` TIMESTAMP NOT NULL ,
`checked` TIMESTAMP NOT NULL ,
PRIMARY KEY ( `id` ) ,
INDEX ( `received` ),
INDEX ( `attempts` ),
INDEX ( `last` ),
INDEX ( `reported` ),
INDEX ( `checked` )
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci;
самостоятельно устанавливает по-умолчанию для поля `received` on update CURRENT_TIMESTAMP ?
А у остальных полей timestamp неустанавливает? Т.е. для received приходится дополнять `received` TIMESTAMP NOT NULL DEFAULT "0000-00-00 00:00:00"

-~{}~ 18.11.09 11:46:

Переставил местами last и received и у last появился on update. Значит это так и надо.
 

zerkms

TDD infected
Команда форума
значит нужно просто явно прописывать, чтобы не было сюрпризов :)
 

Фанат

oncle terrible
Команда форума
я бы не стал вообще использовать поле timestamp
пользы от него никакой, а подводных камней мнооого
 
Сверху