在MySQL中运行程序

时间:2013-05-05 05:29:04

标签: mysql stored-procedures

我创建了3个程序,3 rd 调用另外两个程序:

pi功能

DELIMITER $$
DROP PROCEDURE IF EXISTS pi$$
CREATE PROCEDURE pi()
BEGIN
DECLARE pi FLOAT;
SET pi = 3.14;
SELECT pi;
END$$

电源功能

DELIMITER $$
DROP PROCEDURE IF EXISTS pot$$
CREATE PROCEDURE pot(input_number INT)
BEGIN
DECLARE pot FLOAT; 
SET pot= input_number;
SELECT POWER (pot,2);
END$$

areac功能

DELIMITER $$

DROP PROCEDURE IF EXISTS areac$$
CREATE PROCEDURE areac(input_number INT)
BEGIN
DECLARE area FLOAT;
SET area = input_number;
SELECT pi()*pot(area,2);
END$$

当我运行CALL areac(1)$$时,会出现此错误:

ERROR 1305 (42000): FUNCTION aula3.pot does not exist

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

前两个语句创建STORED PROCEDURE而不是FUNCTION。这是创建函数的语法。

PI()

DELIMITER $$
CREATE FUNCTION pi()
RETURNS FLOAT
BEGIN
    RETURN 3.14;
END $$
DELIMITER ;

POT()

DELIMITER $$
CREATE FUNCTION pot(input_number INT)
RETURNS FLOAT
BEGIN
    RETURN POWER(input_number, 2);
END $$
DELIMITER ;

现在您可以执行此语句:CALL areac(1)