mysql5.5と5.6の違い

1054 ワード

  • timestamp 
  • 5.5に直接timestampを書く長さ5.6に書かないtimestamp(3)
  • datatime
  • 5.5に直接datetimeを書く長さを加えない5.6に長さ(3)
  • を追加できます.
    質問:
  • [HY000][1293] Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
  • 5.5 2つのtimestamp列は使用できません.5.6はこの問題を無視できます.
  • はフリップフロップを用いてこのような効果を実現する.
    CREATE TABLE `example` (
      `id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
      `created` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
      `lastUpdated` DATETIME NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB;
    DROP TRIGGER IF EXISTS `update_example_trigger`;
    DELIMITER //
    CREATE TRIGGER `update_example_trigger` BEFORE UPDATE ON `example`
     FOR EACH ROW SET NEW.`lastUpdated` = NOW()
    //
    DELIMITER ;