我正在研究mysql。这是我练习存储过程的代码。
CREATE DEFINER=`raxuser`@`%` PROCEDURE `test`(in fc_frm_date char(5), in fc_to_date char(5))
BEGIN
declare frm_date char(5);
declare to_date char(5);
select fc_frm_date into @frm_date;
select fc_to_date into @to_date;
select distinct @frm_date, @to_date, fc_frm_date, fc_to_date;
set @s = CONCAT('select distinct @frm_date, @to_date, fc_frm_date, fc_to_date;');
PREPARE stmt FROM @s; EXECUTE stmt; DEALLOCATE PREPARE stmt;
END
当我运行它时,第一个选择查询变得正确,而第二个查询显示错误代码为
错误代码:1054'字段列表'中的未知列'fc_frm_date'
我认为两个选择查询应该相同但不是。任何人都可以帮忙解释一下吗?
非常感谢。
答案 0 :(得分:1)
我认为正确的方法(UNTESTED)是:
sudo service mysql restart
答案 1 :(得分:0)
试一试:
CREATE DEFINER=`raxuser`@`%` PROCEDURE `test`(fc_frm_date char(5), fc_to_date char(5))
BEGIN
DECLARE frm_date CHAR(5);
DECLARE to_date CHAR(5);
SELECT fc_frm_date INTO @frm_date;
SELECT fc_to_date INTO @to_date;
SELECT fc_frm_date INTO @fc_frm_date;
SELECT fc_to_date INTO @fc_to_date;
SET @s = 'select distinct @frm_date, @to_date, @fc_frm_date, @fc_to_date';
PREPARE stmt FROM @s; EXECUTE stmt; DEALLOCATE PREPARE stmt;
SELECT @s;
END