Я пишу хранимую процедуру, которая использует несколько инструкций IF/THEN, которые также должны выполнять несколько запросов, если они оценивают значение true. Проблема в том, что я не могу найти примеров соответствующего синтаксиса. Из руководства для разработчиков MySQL кажется, что у меня может быть несколько запросов в "statement_list", но пока я не могу заставить его работать.
Вот что я пытаюсь сделать:
SET agency =
COALESCE((SELECT org_agency_o_id
FROM orgs_agencies
WHERE org_agency_code = maj_agency_cat)
,(SELECT min(org_id)
FROM orgs
WHERE org_name LIKE CONCAT('U.S.',SUBSTRING(maj_agency_cat,5))))
IF agency IS NULL THEN
-- execute multiple queries
INSERT INTO orgs (org_name
,org_name_length
,org_type
,org_sub_types)
VALUES (CONCAT('U.S. ',SUBSTRING(maj_agency_cat,5))
,LENGTH(CONCAT('U.S. ',SUBSTRING(maj_agency_cat,5)))
,'org','Org,GovernmentEntity,Federal,Agency');
SET agency = LAST_INSERT_ID();
END IF;
Ошибка:
У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с
'IF agency IS NULL THEN INSERT INTO orgs (org_name,org_name_length,org_type,'
по строке 53
Любые идеи? Я знаю, что это должно быть что-то простое, поэтому я бы очень признателен за любой вклад.