灵活的更新存储过程Mysql

我正在寻找一种灵活的更新存储过程。我做了这个。当我将此调用称为spUpdatePage(1,'a','b','c'd')时,它可以正常工作。

在此示例中,我是否必须始终通过5个参数?

我也可以这样做吗

CALL spUpdatePage(1,'a','c') 

并且该存储过程知道我只想更新列的名称和描述?

CREATE DEFINER=`root`@`localhost` PROCEDURE `spUpdatePage`(
IN `pKey` INT(4), 
IN `name` VARCHAR(255), 
IN `title` VARCHAR(255), 
IN `description` VARCHAR(255), 
IN `keywords` VARCHAR(255))
UPDATE
    pages
SET
    name = COALESCE(name, name),
    title = COALESCE(title, title),
    description = COALESCE(description, description),
    keywords = COALESCE(keywords, keywords)
WHERE
    id = pKey
艾略特新鲜

在此示例中,我是否必须始终通过5个参数?

我也可以这样做吗?

CALL spUpdatePage(1,'a','c') 

对于发布的存储过程,必须传递所有5个参数。不,您不能仅将name传递给description(已发布的存储过程)。但是,您可以编写一个仅更新name的存储过程description就像是,

CREATE DEFINER=`root`@`localhost` PROCEDURE `spUpdatePageNameTitle`(
  IN `pKey` INT(4), 
  IN `name` VARCHAR(255), 
  IN `title` VARCHAR(255))
UPDATE
  pages
SET
  name = COALESCE(name, name),
  title = COALESCE(title, title)
WHERE
  id = pKey

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章