我有一个名为employee的表。我还有另外两张表,叫做hrm,accounting。我想把员工按部门插入人力资源管理和会计表。
CREATE TABLE employees (
employee_id INT(4) NOT NULL AUTO_INCREMENT,
employee_first_name VARCHAR(30) NOT NULL,
employee_last_name VARCHAR(30) NOT NULL,
employee_department VARCHAR(30) NOT NULL,
PRIMARY KEY (employee_id));
根据employee\u部门,我想将该雇员插入到特定的表中。
CREATE TABLE hrm (
employee_id INT(4),
employee_designation VARCHAR(20),
FOREIGN KEY (employee_id)
REFERENCES employees (employee_id)
ON DELETE CASCADE);
CREATE TABLE accounting (
employee_id INT(4),
employee_designation VARCHAR(20),
FOREIGN KEY (employee_id)
REFERENCES employees (employee_id)
ON DELETE CASCADE);
如果员工所在部门是人力资源管理部门,我希望将该员工插入到人力资源管理表中,如何通过mysql触发器或存储过程来实现?
1条答案
按热度按时间fcy6dtqo1#
尝试以下操作:
我将解释一些关键点:
在一个
AFTER INSERT
触发器,可以使用NEW
. 所以这里:NEW.employee_department
等于插入的employee_department
新员工的价值,与NEW.employee_id
(用于AFTER DELETE
可以使用的触发器OLD
以及AFTER UPDATE
你有NEW
更新值和OLD
更新前的值)在mysql触发器中,可以添加条件:这里我检查
employee_department
新员工的“人力资源管理”等于“人力资源管理”:如果是,则在人力资源管理表中插入,否则触发器不执行任何操作如果你想对“会计”做同样的事,逻辑是一样的