注意,已经向我指出以下内容
DELIMITER
在我不使用的PHPMyAdmin中不需要。所以
DELIMITER公司
是客户端的事情,比如MySQL Workbench之类的软件所需要的。
存储过程:
DROP PROCEDURE IF EXISTS `my_test`;
DELIMITER $$
CREATE PROCEDURE `my_test`(
IN my_in_var VARCHAR(255),
OUT my_out_var VARCHAR(255)
)
BEGIN
IF (my_in_var = 'my_in_value') THEN
SET my_out_var = 'my_out_value1';
ELSE
SET my_out_var = 'my_out_value2';
END IF;
END$$
DELIMITER ;
测试:
set @outme='';
call my_test('lizard',@outme);
select @outme;
-- my_out_value2
set @outme='';
call my_test('my_in_value',@outme);
select @outme;
-- my_out_value1
所以你需要弄清楚你的意图是什么。
您的double有语法错误
=
你可能在
in_var
那是不存在的。
PHPMyAdmin(不需要DELIMITER,所以我被告知):
DROP PROCEDURE IF EXISTS `my_test`;
CREATE PROCEDURE `my_test`(
IN my_in_var VARCHAR(255),
OUT my_out_var VARCHAR(255)
)
BEGIN
IF (my_in_var = 'my_in_value') THEN
SET my_out_var = 'my_out_value1';
ELSE
SET my_out_var = 'my_out_value2';
END IF;
END