2016-04-07 75 views
0

我做錯了什麼?Mysql TIMESTAMP觸發器不起作用

table1 在INSERT數據table1我有觸發:

BEGIN 
    INSERT INTO table2 (`c_id`, `date`, `product_id`, `price`) 
    VALUES (
      NEW.c_id, 
      NEW.date = CURRENT_TIMESTAMP, 
      NEW.product_id, 
      NEW.price 
     ); END 


CREATE TABLE `table2` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `c_id` int(11) NOT NULL, 
    `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, 
    `product_id` int(11) NOT NULL, 
    `price` decimal(9,2) DEFAULT NULL, 
    PRIMARY KEY (`id`), 
    KEY `c_data` (`c_id`,`date`,`product_id`) 
) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=latin1; 

至於結果,我得到的日期

MySQL版本28年6月5日0000-00-00 00:00:00

+0

從插入查詢中刪除'date'和NEW.date = CURRENT_TIMESTAMP。默認情況下,mysql會爲它設置日期。 –

+0

MySQL version 5.6.28 –

+0

@MangeshSatheIND你的意思是:BEGIN插入competitor_pricing('competitor_id','variant_id','price')值(NEW.competitor_id,NEW.variant_id,NEW.price);結束 ??? –

回答

0

從插入查詢中刪除dateNEW.date = CURRENT_TIMESTAMP。默認mysql會爲它設置date

INSERT INTO table2 (`c_id`, `product_id`, `price`) 
    VALUES (
      NEW.c_id, 
      NEW.product_id, 
      NEW.price 
     );