mysql - 触发器 - Mysql 管理器

标签 mysql triggers

我创建了两个表: 1)经理 2)销售 我需要这样做; 如果经理成功销售 20 笔,则溢价为销售额的 20%。 我是这么写的,但是哪里出错了?

DELIMITER $$
CREATE TRIGGER `calculate_prize_upd` AFTER UPDATE ON `students` FOR EACH ROW BEGIN

       UPDATE manager set
       goods = (SELECT COUNT(*) FROM selling WHERE manager_id = NEW.manager_id)
       WHERE id = NEW.manager_id;
       IF (goods > 20) THEN
        prize = 
        (SELECT price/0.2 FROM selling WHERE manager_id = new.manager_id);



END
$$
DELIMITER ;

最佳答案

我认为这应该是这样的 -

DELIMITER $$
CREATE TRIGGER `calculate_prize_upd` AFTER UPDATE ON `students` FOR EACH ROW  
BEGIN
    DECLARE @goods varchar(100)
    SET @goods = SELECT COUNT(*) FROM selling WHERE manager_id = NEW.manager_id
    IF (goods > 20) THEN
    UPDATE selling 
    SET prize = prize * 1.2 
    WHERE manager_id = new.manager_id
END
$$
DELIMITER ;

关于mysql - 触发器 - Mysql 管理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46266244/

相关文章:

python - 使用 sqlalchemy 的 MySQL 空间索引?

mysql - 如何从具有条件的重复日期行中仅选择一行

c# - 在 Azure 聊天机器人框架中使用聊天机器人响应作为触发词

mysql - 创建触发器mysql错误

php - MySQL 触发器每次更新都会添加两行

MySQL 触发器 - 汇总 json 格式列的变化

php - 如何检查我的服务器上的 query_cache_type 值

mysql - 如何连接到无法通过 Wordpress API 访问的表?

php - codeigniter 将字段名称和行值放入单个字符串中

mysql - 使用 MySQL AFTER UPDATE 触发器更新基于 INT 值更改的另一个表中的列