Как использовать оператор select..into внутри триггера в mySQL - PullRequest
1 голос
/ 19 апреля 2020

Я получаю синтаксическую ошибку, так как

"select" недопустим в этой позиции для этой версии сервера, ожидая: '(', с

delimiter |
CREATE TRIGGER after_temp_ticket_insert 
AFTER INSERT ON temp_tickets
FOR EACH ROW begin
declare 
    ss varchar(5);

    select system into ss from support_system where team=new.assigned_team;

    INSERT INTO tickets(ticket_id,ticket_type,summary,assigned_team,assigned_to,created_by,created_date,priority,status,resolution,resolved_date,support_system,category_tier1,category_tier2)
    VALUES (new.ticket_id,new.ticket_type,new.summary,new.assigned_team,new.assigned_to,new.created_by,new.created_date,new.priority,new.status,new.resolution,new.resolved_date,ss,NULL,NULL);
end
|
delimiter ;

Пожалуйста, помогите мне с это. Спасибо заранее.

1 Ответ

1 голос
/ 19 апреля 2020

Используйте backticks для системы, это зарезервированное слово

Также проверьте здесь для получения дополнительной информации

delimiter |
CREATE TRIGGER after_temp_ticket_insert 
AFTER INSERT ON temp_tickets
FOR EACH ROW begin
declare 
    ss varchar(5);

    select `system` into ss from support_system where team=new.assigned_team;

    INSERT INTO tickets(ticket_id,ticket_type,summary,assigned_team,assigned_to,created_by,created_date,priority,status,resolution,resolved_date,support_system,category_tier1,category_tier2)
    VALUES (new.ticket_id,new.ticket_type,new.summary,new.assigned_team,new.assigned_to,new.created_by,new.created_date,new.priority,new.status,new.resolution,new.resolved_date,ss,NULL,NULL);
end
|
delimiter ;
...