我正在编写一个存储过程,其中使用了多个IF/THEN语句,如果它们评估为真,则还需要执行多个查询。问题是,我似乎找不到适当语法的示例。根据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服务器版本对应的手册,以获取在第53行使用正确语法的方法,例如:
'IF agency IS NULL THEN INSERT INTO orgs (org_name,org_name_length,org_type,'
有任何想法吗?我知道这肯定是一些简单的东西,所以非常感谢大家的帮助。