MySQL的功能不能正常工作
问题描述:
我的数据库名字是dfeb
和我有一个表命名invdt
和列命名为batch_number
,id
。我想获得batch_number
其中id = 59,用function.But错误时显示出来function does not exist
。MySQL的功能不能正常工作
DELIMITER $$
CREATE
FUNCTION `dfeb`.`get_quantity`(PID)
RETURNS VARCHAR
BEGIN
DECLARE NAME_FOUND VARCHAR DEFAULT "";
SELECT `batch_number` INTO NAME_FOUND FROM `invdt` WHERE ID = PID;
RETURN NAME_FOUND
END$$
DELIMITER ;
SELECT `get_quantity`(59) FROM `invdt`
答
尝试:
DELIMITER $$
-- CREATE FUNCTION `dfeb`.`get_quantity`(PID)
CREATE FUNCTION `dfeb`.`get_quantity`(PID INT)
-- RETURNS VARCHAR
RETURNS VARCHAR(200)
BEGIN
-- DECLARE NAME_FOUND VARCHAR DEFAULT "";
DECLARE NAME_FOUND VARCHAR(200) DEFAULT "";
SELECT `batch_number` INTO NAME_FOUND FROM `invdt` WHERE ID = PID;
-- RETURN NAME_FOUND
RETURN NAME_FOUND;
END$$
DELIMITER ;
-- SELECT `get_quantity`(59) FROM `invdt`
SELECT `dfeb`.`get_quantity`(59) FROM `invdt`;
UPDATE
CREATE FUNCTION `dfeb`.`get_quantity`(PID INT)
.
.
.
-- SELECT `get_quantity`(59) FROM `invdt`
SELECT `dfeb`.`get_quantity`(59) FROM `invdt`;
或者
USE `dfeb`;
CREATE FUNCTION `get_quantity`(PID INT)
.
.
.
SELECT `get_quantity`(59) FROM `invdt`;
是'dfeb'数据库名称正确,当创建函数它需要'schemaname'。 'functionname'或'dbname'.'functionname'? – Arulkumar
@Arulkumar:查看更新的答案。 – wchiquito
再次'SELECT \'get_quantity \'(59)FROM \'invdt \';'不会按照OP的帖子工作,希望它需要架构名称。 – Arulkumar