首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >mysql存储过程可以有一个默认参数吗?

mysql存储过程可以有一个默认参数吗?
EN

Stack Overflow用户
提问于 2009-06-11 18:23:33
回答 6查看 116.8K关注 0票数 77

我已经在谷歌上搜索过了,一直在想“不,这是不可能的”,但这些帖子的日期是2005-2007年,所以我想知道这是不是已经改变了。代码示例:

代码语言:javascript
复制
CREATE PROCEDURE `blah`
(
  myDefaultParam int = 0 -- This breaks the code for some reason
)
BEGIN
  -- Do something here
END

其中一个解决方案是传递null,然后检查null并设置变量。我不想那样做,我也不应该这样做。如果这是真的,那么MySql开发人员需要觉醒了,因为我可以用MSSQL做更多的事情。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-06-11 18:29:41

这仍然不可能。

票数 80
EN

Stack Overflow用户

发布于 2012-07-10 07:34:56

我们通过在存储过程中添加一个简单的IF语句绕过了这个限制。实际上,每当我们想要在数据库中保存缺省值时,我们都会传递一个空字符串。

代码语言:javascript
复制
CREATE DEFINER=`test`@`%` PROCEDURE `myProc`(IN myVarParam VARCHAR(40))
BEGIN
  IF myVarParam = '' THEN SET myVarParam = 'default-value'; END IF;

  ...your code here...
END
票数 52
EN

Stack Overflow用户

发布于 2015-03-04 22:36:54

代码语言:javascript
复制
SET myParam = IFNULL(myParam, 0);

说明:IFNULL(expression_1, expression_2)

如果expression_1不是NULL,则IFNULL函数返回expression_1;否则返回expression_2IFNULL函数根据使用的上下文返回字符串或数字。

票数 32
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/982798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档