我有两个函数 - 一个用于设置变量,一个用于查看它。这个想法是在视图中使用变量。
我对函数真的很陌生。无论如何,这就是他们应该做的:
获取站点 ID:
BEGIN
#Routine body goes here...
RETURN @siteContext;
END
Run Code Online (Sandbox Code Playgroud)
设置站点 ID:
BEGIN
#Routine body goes here...
set @siteContext := SiteId;
RETURN @siteContext;
END
Run Code Online (Sandbox Code Playgroud)
它有一个 SiteId 的 int 参数。
但是当我尝试执行它们时,出现错误。
我像这样执行它们:
SetSiteId(1);
select GetSiteId();
Run Code Online (Sandbox Code Playgroud)
如果我对 SetSiteId 执行选择,它工作正常,但我不想看到它,我只想看到 GetSiteId 的结果,它应该是 1。
我想也许有一个特定的关键字来执行该函数,但我找不到任何关键字,谷歌也没有帮助。我怀疑我的做法可能全错了,但我不明白这是怎么回事——这似乎应该是世界上执行函数最简单的事情。
我得到的非常无用的错误是这样的:
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 1 行“SetSiteId(1)”附近使用的正确语法
MySQL 中存储的代码分为三种基本类型:
函数返回一个值。因此,需要从可以接受该值的上下文中调用它。因此,您可以使用
SET @something := YOUR_FUNCTION(param, param);
Run Code Online (Sandbox Code Playgroud)
或者
SELECT YOUR_FUNCTION(param, param)
Run Code Online (Sandbox Code Playgroud)
存储过程返回结果集(或者不返回结果集)。它被称为
CALL YOUR_PROCEDURE(param, param)
Run Code Online (Sandbox Code Playgroud)
因此,您可以像这样调用第一个存储函数:
SET @junk := SetSiteId(1);
Run Code Online (Sandbox Code Playgroud)
或者您可以使用 SELECT 调用它并忽略结果集。
| 归档时间: |
|
| 查看次数: |
5806 次 |
| 最近记录: |