Ich schreibe eine gespeicherte Prozedur, die mehrere IF / THEN-Anweisungen verwendet, die auch mehrere Abfragen ausführen müssen, wenn sie zu wahr auswerten. Das Problem ist, dass ich keine Beispiele für die entsprechende Syntax finden kann. In der MySQL-Entwicklungshandbuch Es scheint, als ob ich mehrere Abfragen in der "statement_list" haben könnte, aber bis jetzt kann ich es nicht zum Laufen bringen.
Ich versuche Folgendes zu tun:
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;
Der Fehler:
Sie haben einen Fehler in Ihrer SQL-Syntax. Schauen Sie im Handbuch zu Ihrer MySQL-Server-Version nach, um die richtige Syntax zu finden, die Sie bei
'IF agency IS NULL THEN INSERT INTO orgs (org_name,org_name_length,org_type,'
in Zeile 53
Irgendwelche Ideen? Ich weiß, dass es etwas Einfaches sein muss, daher wäre ich für jeden Beitrag sehr dankbar.