簡體   English   中英

MySQL在存儲過程中拋出錯誤IF函數

[英]MySQL Throws an Error IF Function in Stored Procedure

我對我的mysql存儲過程有一些問題,mysql總是顯示錯誤1064,錯誤mysql語法。 我哪里錯了?

   DELIMITER $$

   USE `itin`$$

   DROP PROCEDURE IF EXISTS `sp_Transaction`$$

   CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_Transaction`(IN inpt TINYINT(4), IN inpt2 TINYINT(4))
   BEGIN

   IF((inpt = 0) AND (inpt2 = 0)) THEN  
   SELECT idtr_inventory, showStatus(idms_status) AS idms_status, showLocation(idms_location) AS idms_location
, showUnitType(idms_unittype) AS idms_unittype, USER, user_email
, showDepartment(idms_department) AS idms_department, asset_tag, sn, brand, model, showBBUser(bb_user) AS bbUser
, dt_purchase, warranty, dt_warranty_exp, nm_computer, ip_address, remarks
   FROM tr_inventory;

 ELSE IF(inpt = 0) THEN
 SELECT idtr_inventory, showStatus(idms_status) AS idms_status, showLocation(idms_location) AS idms_location
, showUnitType(idms_unittype) AS idms_unittype, USER, user_email
, showDepartment(idms_department) AS idms_department, asset_tag, sn, brand, model, showBBUser(bb_user) AS bbUser
, dt_purchase, warranty, dt_warranty_exp, nm_computer, ip_address, remarks
 FROM tr_inventory WHERE (idms_location = inpt2);

ELSE IF(inpt2 = 0) THEN
SELECT idtr_inventory, showStatus(idms_status) AS idms_status, showLocation(idms_location) AS idms_location
, showUnitType(idms_unittype) AS idms_unittype, USER, user_email
, showDepartment(idms_department) AS idms_department, asset_tag, sn, brand, model, showBBUser(bb_user) AS bbUser
, dt_purchase, warranty, dt_warranty_exp, nm_computer, ip_address, remarks
FROM tr_inventory WHERE (idms_unittype = inpt)

ELSE 
SELECT idtr_inventory, showStatus(idms_status) AS idms_status, showLocation(idms_location) AS idms_location
, showUnitType(idms_unittype) AS idms_unittype, USER, user_email
, showDepartment(idms_department) AS idms_department, asset_tag, sn, brand, model, showBBUser(bb_user) AS bbUser
, dt_purchase, warranty, dt_warranty_exp, nm_computer, ip_address, remarks
FROM tr_inventory WHERE (idms_unittype = inpt) AND (idms_location = inpt2);

END IF;
END IF;
END IF;

END$$

DELIMITER ;

if語句到底有錯嗎? 如果是,我需要放在哪里? 謝謝。

錯誤:查詢:CREATE DEFINER = root @ localhost PROCEDURE sp_Transaction (在inpt tinyint(4),在inpt2 TINYINT(4)中)if((inpt = 0)AND ...錯誤代碼:1064您的SQL錯誤語法;請查看與您的MySQL服務器版本相對應的手冊,以獲取在'else附近使用的正確語法

你錯過了;

...
FROM tr_inventory WHERE (idms_unittype = inpt);
                                              ^------here
ELSE 
...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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