Mysql 临时程序定义变量问题
我第一次尝试MySQL过程,但是我不知道如何为我的一生定义变量@index_id。它真的不喜欢这个场景Mysql 临时程序定义变量问题,mysql,Mysql,我第一次尝试MySQL过程,但是我不知道如何为我的一生定义变量@index_id。它真的不喜欢这个场景 CREATE PROCEDURE #indextemp BEGIN SET @index_ids = (SELECT DISTINCT index_id FROM visibility_index_processing_queue WHERE process_id IS NOT NULL); SELECT @index_ids; END 问题出在CREATE PROCEDURE语法中
CREATE PROCEDURE #indextemp
BEGIN
SET @index_ids = (SELECT DISTINCT index_id FROM visibility_index_processing_queue WHERE process_id IS NOT NULL);
SELECT @index_ids;
END
问题出在
CREATE PROCEDURE
语法中,而不是设置变量中。只需在过程名称后添加括号即可。这是工作样品
delimiter $
CREATE PROCEDURE indextemp()
BEGIN
SET @index_ids = (SELECT DISTINCT index_id FROM visibility_index_processing_queue WHERE process_id IS NOT NULL);
SELECT @index_ids;
END$
delimiter ;
有时,在过程体中使用分隔符也会导致问题。这就是为什么我在创建过程之前将分隔符设置为$
,并将其恢复为默认值代码>完成后
还请注意,我已从您的过程名称中删除了#
。在sql中,
用于插入注释。如果出于某种原因,你真的想以你的名义使用它,你必须这样做
CREATE PROCEDURE `#indextemp`()
“它真的不喜欢这个场景”-你应该详细说明一下。你得到了什么错误消息,或者你看到了什么行为与你期望的相比?谢谢,这是一个进步,但如果我尝试在过程名称中使用#将其设置为本地临时过程,它仍然会出错。我想我正在尝试在mysql中做一些不可能的事情