Когда я попытаюсь создать триггер, как показано ниже,
CREATE TRIGGER FiscalYearTable1_bi
BEFORE INSERT
ON FiscalYearTable1
FOR EACH ROW
IF (
( EXTRACT (YEAR FROM FiscalYearTable1.start_date) != FiscalYearTable1.fiscal_year - 1) OR
(EXTRACT (MONTH FROM FiscalYearTable1.start_date) != 04) OR
(EXTRACT (DAY FROM FiscalYearTable1.start_date) != 01)
)
SET FiscalYearTable1.fiscal_year = 1/0;
Я получаю следующую ошибку,
ОШИБКА 1064 (42000): у вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с 'FROM FiscalYearTable1.start_date)!= FiscalYearTable1.fiscal_year - 1) ИЛИ (EXTRA' в строке 1
Я не могу понять, что такое ошибка. Есть идеи? Благодаря
что-то вроде этого:
delimiter #
create trigger FiscalYearTable1_before_ins_trig before insert on FiscalYearTable1
for each row
begin
declare y smallint unsigned default 0;
declare m tinyint unsigned default 0;
declare d tinyint unsigned default 0;
set y = year(new.start_date);
set m = month(new.start_date);
set d = day(new.start_date);
-- whatever logic you require...
if y != new.fiscal_year-1 or m != 4 or d != 1 then
set new.fiscal_year = null;
end if;
end#
delimiter ;