gpt4 book ai didi

mysql - MYSQL 每年增加一列

转载 作者:行者123 更新时间:2023-11-29 10:51:02 24 4
gpt4 key购买 nike

我的数据库有以下架构:

faculty(fid,fname,date of joining, salary, specialisation)
course(cid,cname,credits,semester, department)
teaches(fid,cid)

我想实现以下内容:

Increment the salary by 2000 of faculty after each year, starting salary may be 100000.

我正在考虑如何实现它,因为它是一个触发器,但这只是在插入时(之前/之后),那么我将如何实现它?

请帮忙

最佳答案

我将使用 MySQL 事件和计划每天在您选择的预定义时间运行它(因为不同的员工可能有不同的加入日期)使用 mysql 调度程序(默认情况下未启用,您需要使用event_scheduler=ON 在配置文件中)。

在这种情况下,您可以编写一个简单的更新 SQL 查询来检查加入日期,如果当前日期大于加入日期 + 一年,则更新工资 ( salary = salary + 2000 )。现在您可能需要另一个日期字段“salary last updated ”,然后在更新查询中您将检查当前时间戳是否大于工资的上次更新并且此后尚未过去一年。如果无法添加新字段,并且年度增量对于每个人来说都是一致且相同的,则您可以通过 (current salary- base year salary)/increment 来了解今年是否已应用增量。 amount 查看当年应用了多少增量 - 加入年份的日期。

https://dev.mysql.com/doc/refman/5.7/en/events-overview.html有关 MySQL 计划事件的更多信息。

启用事件调度程序后,您可以添加这样的事件

CREATE EVENT `UpdateSalaryEvent` 
ON SCHEDULE EVERY 1 DAY STARTS '2017-05-15 03:00:00'
DO BEGIN
-- event body YOUR SALARY UPDATE SQL GOES HERE
END;

关于mysql - MYSQL 每年增加一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43732403/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com