我在寫一個使用多個IF/THEN語句的存儲過程,如果它們的計算結果爲true,也需要執行多個查詢。問題是,我似乎無法找到合適語法的任何示例。從MySQL dev handbook看來,我似乎可以在「statement_list」中有多個查詢,但到目前爲止,我無法使其工作。存儲過程中的MySQL:IF/THEN語句
這裏就是我想要做的事:
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;
錯誤:
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
任何想法?我知道它必須是簡單的東西,所以我會非常感謝任何人的意見。
好極了,謝謝! – tchaymore 2011-05-13 02:27:52