Estoy escribiendo un procedimiento almacenado que usa múltiples instrucciones IF/THEN que también necesitan ejecutar múltiples consultas si se evalúan como verdaderas. El problema es que parece que no puedo encontrar ningún ejemplo de la sintaxis adecuada. Desde el MySQL dev handbook, parece que podría tener múltiples consultas en la "lista_de_claves", pero hasta ahora no puedo hacer que funcione.MySQL: instrucciones IF/THEN en procedimientos almacenados
Aquí es lo que estoy tratando de hacer:
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;
El error:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near
'IF agency IS NULL THEN INSERT INTO orgs (org_name,org_name_length,org_type,'
at line 53
¿Alguna idea? Sé que tiene que ser algo simple, por lo que agradecería mucho las aportaciones de cualquier persona.
fantástico, gracias! – tchaymore