对于MySQL存储过程是否可能有一个默认参数?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (53)

码示例:

CREATE PROCEDURE `blah`
(
  myDefaultParam int = 0 -- This breaks the code for some reason
)
BEGIN
  -- Do something here
END

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

提问于
用户回答回答于
用户回答回答于

我们通过在存储过程中添加一个简单的if语句来解决这个限制。实际上,每当我们想在DB中保存默认值时,我们都会传递一个空字符串。

CREATE DEFINER=`test`@`%` PROCEDURE `myProc`(IN myVarParam VARCHAR(40))
BEGIN
  IF myVarParam = '' THEN SET myVarParam = 'default-value'; END IF;

  ...your code here...
END

扫码关注云+社区