【发布时间】:2021-08-12 10:03:24
【问题描述】:
希望您对这个问题有所帮助。我在 Mysql 中创建了一个名为“Producto”的表(产品是西班牙语,我的数据库名称是西班牙语),属性为 nombre(名称)、stock(库存)和 precio(价格),并创建了一个计算可用库存的函数产品并与作为参数的数量进行比较。如果库存小于函数参数“can”(请求数量)则返回0,如果库存大于则返回1。
CREATE TABLE producto
(
id_producto INT PRIMARY KEY AUTO_INCREMENT,
nombre VARCHAR(50) NOT NULL UNIQUE,
stock INT NOT NULL CHECK (stock > 0),
precio DOUBLE(6,2) NOT NULL CHECK (precio > 0)
);
这是我的功能:
CREATE FUNCTION f_consultar_stock(nom VARCHAR(50), can INT)
RETURNS INT
BEGIN
DECLARE v_can INT;
DECLARE v_valor INT;
SELECT stock INTO v_can FROM producto WHERE nombre = nom;
IF v_can > can THEN
SET v_valor = 1;
ELSE
SET v_valor = 0;
END IF;
RETURN v_valor;
END;
在执行函数创建之前,MySql 向我返回此错误
`22:15:04
CREATE FUNCTION f_consultar_stock(nom VARCHAR(50), can INT) RETURNS INT BEGIN DECLARE v_can INT
错误代码:1064。您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以了解在第 4 行的 '' 附近使用正确的语法
0,00030 sec`
是什么原因?请帮助我,提前谢谢。
【问题讨论】:
标签: mysql sql function database-design compare