Erro ao criar tabela

Olá estou tentando criar uma tabela, mas ao executar o script sql gera um
Erro #1293 - Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause

Alguém pode me ajudar ?

SCRIPT SQL


– Table structure for ws_siteviews_online


DROP TABLE IF EXISTS siteviews_online;

CREATE TABLE siteviews_online (

online_id int(11) NOT NULL AUTO_INCREMENT,

online_session varchar(255) CHARACTER SET latin1 NOT NULL,

online_startview timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,

online_endview timestamp NOT NULL DEFAULT ‘0000-00-00 00:00:00’ ON UPDATE CURRENT_TIMESTAMP,

online_ip varchar(255) CHARACTER SET latin1 NOT NULL,

online_url varchar(255) CHARACTER SET latin1 NOT NULL,

online_agent varchar(255) CHARACTER SET latin1 NOT NULL,

agent_name varchar(255) DEFAULT NULL,

PRIMARY KEY (online_id)

) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

Olá André.

Se a versão que esta utilizando do MySQL é inferior a 5.6.5 você não conseguirá atribuir o valor default CURRENT_TIMESTAMP para duas colunas. E mesmo que mantenha somente uma coluna com valor default, você não poderá deixar a outra como not null.

Na prática, deixando o online_endview com atualização no ato de updates, você precisará usar:

`CREATE TABLE siteviews_online (

online_id INT(11) NOT NULL AUTO_INCREMENT,

online_session VARCHAR(255) CHARACTER SET latin1 NOT NULL,

online_startview TIMESTAMP NULL ,

online_endview TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,

online_ip VARCHAR(255) CHARACTER SET latin1 NOT NULL,

online_url VARCHAR(255) CHARACTER SET latin1 NOT NULL,

online_agent VARCHAR(255) CHARACTER SET latin1 NOT NULL,

agent_name VARCHAR(255) DEFAULT NULL,

PRIMARY KEY (online_id)

) ENGINE=INNODB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;`

Veja que foi necessário retirar o not null do online_starview.

Espero ter ajudado, abraços.