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