[英]Flexible Update Stored Procedure 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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.