簡體   English   中英

MySQL INSERT IF 條件為真

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM