2010-10-13 176 views
2

我有以下表和觸發器,但觸發器不在插入事件設置create_dt值到現在():INSERT觸發器不工作

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值設置爲具有date_time NOW()值。

回答

0

設置@create_dt設置變量。你想要SET NEW.create_dt = NOW()。這將改變傳入記錄的值。

+0

完美工作。我覺得這很簡單。只是不知道它是什麼。謝謝您的幫助! – gurun8 2010-10-13 22:22:16