Webinaris вставляет дату и время в таблицу MariaDB SQL через Mauti c Fomular. Поэтому у меня есть два поля с датой и временем.
Мне нужно новое поле, в котором дата и время объединяются с новым полем.
Типы полей:
webinardatum: date
webinarzeit: время
webinar_datum_38_zeit: datetime (DC2Type: datetime)
Что работает:
SELECT id, TIMESTAMP(webinardatum, webinarzeit) FROM `mau_leads` WHERE ID=40
Результат: 2020 -03-30 02: 30: 00
Также отлично работает: UPDATE mau_leads SET webinar_datum_38_zeit = TIMESTAMP(webinardatum, webinarzeit) WHERE ID=40
Обновляет объединенную дату / время в поле webinar_datum_38_zeit.
Также отлично работает : 1. CREATE DEFINER=`root`@`localhost` TRIGGER `Update_Webinar_Date_Time` BEFORE INSERT ON `mau_leads` FOR EACH ROW BEGIN
SET NEW.webinar_datum_38_zeit = '2020-03-30 02:30:00';
END
в начале / конце set @report_date = '2020-03-30 02:30:00';
SET NEW.webinar_datum_38_zeit = @report_date;
в начале / конце set @report_date = cast('2013-01-17 17:18:19' as datetime);
SET NEW.webinar_datum_38_zeit = @report_date;
НЕ работает:
в начале / конце ни: SET @report_date = TIMESTAMP(NEW.webinardatum, NEW.webinarzeit);
SET NEW.webinar_datum_38_zeit = @report_date;
, ни:
set @report_date = cast(TIMESTAMP(NEW.webinardatum, NEW.webinarzeit) as datetime);
SET NEW.webinar_datum_38_zeit = @report_date;
It´ просто не обновляется NEW.webinar_datum_38_zeit.
Даже следующее не работает: SET @Webinar = NEW.webinardatum;
SET NEW.webinar_datum_38_zeit = Webinar;
Кажется, если MariaDB не может прочитать NEW.webinardatum, NEW.webinarzeit
Обновление: я создал тестовую таблицу, где работает слияние даты и времени. Использование того же триггера не работает с исходной таблицей mauti c.
CREATE TABLE `mau_leads_test` (<br>
`webinardatum` date DEFAULT NULL,
`webinarzeit` time DEFAULT NULL,
`webinar_datum_38_zeit` datetime DEFAULT NULL COMMENT '(DC2Type:datetime)'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ROW_FORMAT=DYNAMIC;
CREATE TRIGGER `Test_Insert` BEFORE INSERT ON `mau_leads_test`
FOR EACH ROW BEGIN
declare report_date datetime;
set report_date = cast(TIMESTAMP(NEW.webinardatum, NEW.webinarzeit) as datetime);
SET NEW.webinar_datum_38_zeit = report_date;
END
INSERT INTO `mau_leads_test` (`webinardatum`, `webinarzeit`, `webinar_datum_38_zeit`) VALUES
( '2020-03-31', '01:00:00', NULL);
INSERT INTO `mau_leads_test` (`webinardatum`, `webinarzeit`) VALUES
( '2020-02-17', '02:00:00');
Работает отлично. Почему он не работает с оригинальной таблицей Mauti c? Обе таблицы находятся в одной базе данных.
Я также попробовал следующие триггеры AFTER INSERT, которые тоже не работают.
UPDATE mau_leads SET webinar_datum_38_zeit = TIMESTAMP(webinardatum, webinarzeit) WHERE mau_leads.id = NEW.id;
UPDATE mau_leads SET webinar_datum_38_zeit = TIMESTAMP(webinardatum, webinarzeit) WHERE webinar_datum_38_zeit is null and webinardatum is not null and webinarzeit is NOT null;
Может ли быть транзакция / откат?
Есть идеи?