插入触发器不起作用

时间:2010-10-13 21:50:29

标签: mysql sql triggers

我有以下表和触发器,但是触发器没有在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();

我尝试了BEFORE和AFTER触发动作时间但没有变化。有没有人有任何建议?

目标是在插入时使用date_time NOW()值设置create_dt值。

1 个答案:

答案 0 :(得分:0)

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

相关问题