2016-04-07 3 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; 

В результате я получаю 0000-00-00 00:00:00 Дата заезда

MySQL версии 5.6.28

+0

Удалить «date» и NEW.date = CURRENT_TIMESTAMP, из запроса на вставку. По умолчанию mysql установит дату для него. –

+0

MySQL версия 5.6.28 –

+0

@MangeshSatheIND вы имеете в виду: BEGIN вставлять в competit_pricing ('competitor_id',' variant_id', 'price') значения (NEW.competitor_id, NEW.variant_id, NEW.price); КОНЕЦ ??? –

ответ

0

Удалить date и NEW.date = CURRENT_TIMESTAMP, из запроса на ввод. По умолчанию mysql установит для него date.

INSERT INTO table2 (`c_id`, `product_id`, `price`) 
    VALUES (
      NEW.c_id, 
      NEW.product_id, 
      NEW.price 
     ); 
Смежные вопросы