CREATE TRIGGER update_schedule AFTER UPDATE ON scheduleFOR EACH ROWBEGIN IF NEW.status = 'approved' AND OLD.status = 'pending' THEN UPDATE schedule SET doctor_id = NEW.doctor_id WHERE schedule_date = NEW.schedule_date AND schedule_time = NEW.schedule_time; END IF;END;
时间: 2024-04-05 15:33:18 浏览: 135
CCC_Digital_Key_Whitepaper_Approved(3.0).pdf
这是一个 MySQL 触发器,它会在 `schedule` 表的任何更新操作之后触发。如果更新的行的 `status` 从 `pending` 变为 `approved`,则会执行 `UPDATE` 语句,将该行的 `doctor_id` 更新为新的医生工号,以实现当管理员同意调班申请时自动地更新排班表信息。
具体来说,这个触发器的含义如下:
- `CREATE TRIGGER update_schedule`:创建一个名为 `update_schedule` 的触发器。
- `AFTER UPDATE ON schedule`:在 `schedule` 表上进行更新操作之后触发。
- `FOR EACH ROW`:对每一行更新操作都执行一次触发器代码。
- `IF NEW.status = 'approved' AND OLD.status = 'pending' THEN`:如果更新后的 `status` 为 `approved`,更新前的 `status` 为 `pending`,则执行以下语句。
- `UPDATE schedule SET doctor_id = NEW.doctor_id WHERE schedule_date = NEW.schedule_date AND schedule_time = NEW.schedule_time;`:将该行的 `doctor_id` 更新为新的医生工号,以实现自动更新排班表信息。
需要注意的是,该触发器的语法是 MySQL 特有的,如果你使用其他数据库,可能需要使用不同的语法来编写触发器。此外,触发器的编写应该根据具体需求进行调整,以上代码仅供参考。
阅读全文