gpt4 book ai didi

Mysql函数从过程调用返回行数

转载 作者:行者123 更新时间:2023-11-29 01:03:42 25 4
gpt4 key购买 nike

<分区>

我正在尝试编写一个函数来返回对存储过程的调用将返回的行数。我正在尝试尽量减少代码的重复(以减少代码维护/调试 - 选择的过程很长)。

存储过程只是只读选择符合特定条件的行(我知道含糊不清,但细节不应该成为问题的实质)。

我可以将过程复制到一个函数中并将选择更改为 count(),但由于多个连接很长,我希望编写一个可以调用该过程并返回行数的函数。目标不是优化运行,而是高效的代码维护、减少样板代码。

我试过这个作为测试:


DELIMITER //

CREATE PROCEDURE IF NOT EXISTS proc_select1()
BEGIN
SELECT 1;
END //

CREATE FUNCTION IF NOT EXISTS select1_count() RETURNS INT UNSIGNED
BEGIN
CALL proc_select1();
RETURN FOUND_ROWS();
END //

DELIMITER ;

但是当我 SELECT select1_count(); - 我希望返回 1 - 我收到“无法从函数返回结果集”错误。

我尝试将 FOUND_ROWS 分配给一个变量,清除结果集然后返回变量值,但无法让它工作。

有没有人知道解决方法,或者我真的需要复制粘贴过程并转换为 SELECT COUNT 和函数吗?

我正在使用 MySQL 5.5.16(如果需要可以升级),Windows 7(似乎没有人想升级 :) 和 HeidiSQLv7.0.0.4053(如果相关)

一如既往,非常感谢任何帮助。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com