代码之家  ›  专栏  ›  技术社区  ›  gurun8

插入触发器不工作

  •  2
  • gurun8  · 技术社区  · 14 年前

    我有下表和触发器,但触发器没有在insert事件上将create_dt值设置为now():

    CREATE TABLE `user` (
      `user_id` int(10) NOT NULL auto_increment,
      `user_name` varchar(255) NOT NULL default '',
      `password` varchar(255) NOT NULL default '',
      `first_name` varchar(255) NOT NULL default '',
      `last_name` varchar(255) NOT NULL default '',
      `email` varchar(255) NOT NULL default '',
      `modify_by` int(10) NOT NULL default '1',
      `modify_dt` timestamp NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
      `create_by` int(10) NOT NULL default '1',
      `create_dt` datetime NOT NULL default '0000-00-00 00:00:00',
      `active` enum('Yes','No') NOT NULL default 'No',
      PRIMARY KEY  (`user_id`),
      UNIQUE KEY `user_name` (`user_name`),
      UNIQUE KEY `email` (`email`),
      FOREIGN KEY (`modify_by`) REFERENCES `user`(`user_id`),
      FOREIGN KEY (`create_by`) REFERENCES `user`(`user_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ;
    
    
    CREATE TRIGGER ins_user BEFORE INSERT ON `user` FOR EACH ROW SET @create_dt = NOW();
    

    我在触发动作之前和之后都试过,但没有改变。有人有什么建议吗?

    目标是在插入时用日期时间()值设置create_dt值。

    1 回复  |  直到 13 年前
        1
  •  0
  •   wuputah    14 年前

    设置 @create_dt 设置变量。你想 SET NEW.create_dt = NOW() . 这将更改传入记录的值。