[英]MySQL INSERT IF condition is true
我正在 MySQL 中創建一個存儲例程,我想知道是否可以創建 INSERT-IF 某些條件為 TRUE,ELSE INSERT 其他內容。
這是我的查詢,但我不斷收到 #1064 錯誤(SQL 語法錯誤)。
DECLARE a INT;
DECLARE b INT;
DECLARE changeTypeID INT DEFAULT(0);
SET a = (SELECT roomPrice FROM RPH WHERE tier=1 AND
startDate = '2018-02-20' AND rTypeID=1);
SET b = (SELECT roomPrice FROM RPH WHERE tier=1 AND
startDate = '2018-02-20' AND rTypeID=2);
SET changeTypeID = CASE WHEN (a>b) THEN 1 WHEN (a<b) THEN 2 WHEN a=b THEN 3 END;
IF (changeTypeID = 1 OR changeTypeID =2) THEN
(
INSERT INTO TABLE_A (X,Y,Z) VALUES (ID, changeTypeID, createdBy);
)
ELSEIF (changeTypeID = 3) THEN
(
INSERT INTO TABLE_B (P,Q,R) VALUES (ID, rID, createdBy);
)
END IF;
這是錯誤消息:
SQL Error (1064): You have an error in your SQL Syntax; check the manual
that corresponds to your MySQL version for the right syntax to use near
'INSERT INTO TABLE_A (X,Y,Z)' at line 19
注意:插入參數已事先在例程中聲明。
任何幫助將不勝感激 :)
DECLARE a INT;
DECLARE b INT;
DECLARE changeTypeID INT DEFAULT(0);
SET a = (SELECT roomPrice FROM RPH WHERE tier=1 AND
startDate = '2018-02-20' AND rTypeID=1);
SET b = (SELECT roomPrice FROM RPH WHERE tier=1 AND
startDate = '2018-02-20' AND rTypeID=2);
SET changeTypeID = CASE WHEN (a>b) THEN 1 WHEN (a<b) THEN 2 WHEN a=b THEN 3 END;
IF (changeTypeID = 1 OR changeTypeID =2) THEN
INSERT INTO TABLE_A (X,Y,Z) VALUES (ID, changeTypeID, createdBy);
ELSEIF (changeTypeID = 3) THEN
INSERT INTO TABLE_B (P,Q,R) VALUES (ID, rID, createdBy);
END IF;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.