Full-stack developer Emerson Rocha .::. CMS Joomla!, PHP, JavaScript/NodeJS, Infraestrutura

CREATE  TABLE IF NOT EXISTS `jos_current_timestamp_workaround` (
  `id` INT(11) NOT NULL AUTO_INCREMENT ,
  `title` VARCHAR(255) NULL DEFAULT NULL COMMENT 'your fields here...' ,
  `hits` INT(11) NULL DEFAULT NULL COMMENT 'See J!API JTable' ,
  `ordering` INT(11) NULL DEFAULT NULL COMMENT 'See J!API JTable' ,
  `checked_out` INT(11) NULL COMMENT 'See J!API JTable' ,
  `checked_out_time` DATETIME NULL COMMENT 'See J!API JTable' ,
  `publish_up` DATETIME NULL COMMENT 'See J!API' ,
  `publish_down` DATETIME NULL COMMENT 'See J!API' ,
  `published` TINYINT NULL DEFAULT 1 COMMENT 'See J!API ' ,
  `params` TEXT NULL COMMENT 'See J!API JParameter...' ,
  `created` DATETIME NULL COMMENT 'See tigger' ,
  `updated` DATETIME NULL COMMENT 'See tigger' ,
  PRIMARY KEY (`id`) )
ENGINE = InnoDB;

DELIMITER $$

DROP TRIGGER IF EXISTS `jos_ctw_created` $$
CREATE TRIGGER jos_ctw_created BEFORE INSERT ON `jos_current_timestamp_workaround` FOR EACH ROW SET
NEW.created = IFNULL(NEW.created, NOW()),
NEW.updated = IFNULL(NEW.updated, '0000-00-00 00:00:00')$$


DROP TRIGGER IF EXISTS `jos_ctw_updated` $$
CREATE TRIGGER jos_ctw_updated BEFORE UPDATE ON `jos_current_timestamp_workaround` FOR EACH ROW SET
NEW.updated = CASE
                  WHEN NEW.updated IS NULL THEN OLD.updated
                  WHEN NEW.updated = OLD.updated THEN NOW()
                  ELSE NEW.updated
              END,
    NEW.updated= IFNULL(NEW.updated, OLD.updated)$$

#1293 - Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause

O Código acima é um exemplo de código que você pode testar para resolver seu problema. Se você chegou nesta página é porque provavelmente tentou usar vários CURRENT_TIMESTAMP e descobriu que o MySQL exibe esse erro.

O que esse exemplo faz?
Este exemplo além de conter alguns campos padrões do Joomla, em vez de usar o CURRENT_TIMESTAMP, usa Trigger (gatilhos) do MySQL que são executados antes de inserir um novo dado, e ao atualizar este dado. Como você pode perceber, ele por exemplo não comete o erro de dizer que foi atualizado quando é criado.

Short link: http://goo.gl/ZjsiM

fititnt.org is not affiliated with or endorsed by the Joomla Project or Open Source Matters. The Joomla logo is used under a limited license granted by Open Source Matters the trademark holder in the United States and other countries
HTML5 Valid

Console de depuração do Joomla!

Sessão

Informação do perfil

Memória Utilizada

Consultas ao banco