首页 > 解决方案 > MySQL触发器为插入的行选择正确的值

问题描述

我需要帮助在 MySql 中构建触发器。我有一个结构如下的“员工”表:

id
first name
role

我想创建一个触发器来自动将角色分配给插入的新员工,选择表中当前较少出现的角色。例如:只有两名清洁工和一名司机。通过插入字段,自动分配司机的角色。我的问题不是触发器结构,而只是在查询中选择正确的角色。你能帮助我吗?

标签: mysqlsqldatabasedatabase-design

解决方案


尝试:

CREATE TRIGGER tr_bi_employees
BEFORE INSERT 
ON employees
FOR EACH ROW
SET NEW.role_id = ( SELECT role_id 
                    FROM employees
                    GROUP BY role_id
                    ORDER BY COUNT(*) LIMIT 1 );

推荐阅读