我需要创建一个接受参数 id 的函数。然后我在给定 id 的表上做一个选择案例。case 中的 when 语句计算行数。
这是我的功能:
CREATE function db_name.insert_stage(idStage INT)
returns integer
BEGIN
SELECT CASE
WHEN COUNT(*) < 10 THEN 0
WHEN COUNT(*) >= 10 and COUNT(*) <= 12 THEN 392
WHEN COUNT(*) >= 13 and COUNT(*) <= 17 THEN 490
ELSE 588
END AS cost
FROM inscriptions WHERE paid = 1 AND id_stage = idStage;
RETURN cost;
END
然后我使用触发器在字段中为阶段中已经存在的每一行设置成本。此触发器也将在阶段插入时调用:
CREATE TRIGGER insert_stage_frais_secretariat BEFORE INSERT ON stage
FOR EACH ROW SET stage.fraisSecretariat = select anper_extranet.insert_stage(stage.id);
我不知道触发器是否还在工作,因为该功能没有。
这是 phpmyadmin 告诉我的:
1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 10 行的 '' 附近使用正确的语法
我不知道第 10 行出了什么问题,因为对我来说这是时间,尽管我尝试了 select 语句并且它有效。