phpMyAdmin数据库自动化需求:修改vacation状态时自动更新日期
解决方案
你需要同时更新vacation字段的值,并且正确使用日期间隔的语法,以下是主流数据库的实现方式:
核心要点
- 必须在
SET子句中添加vacation = 1,完成字段值的修改 - 增加日期间隔的语法随数据库不同有所差异,不能直接用双引号包裹
interval - 建议加上
vacation = 0的条件,确保只修改原本vacation为0的记录,避免重复执行时多次累加天数
MySQL 示例
UPDATE employee_table SET vacation = 1, date_nastne = date_nastne + INTERVAL 7 DAY -- 替换7为你需要的天数 WHERE added = 1 AND vacation = 0;
如果天数来自字段或变量:
UPDATE employee_table SET vacation = 1, date_nastne = date_nastne + INTERVAL days_to_add DAY -- days_to_add为字段名或变量 WHERE added = 1 AND vacation = 0;
PostgreSQL 示例
UPDATE employee_table SET vacation = 1, date_nastne = date_nastne + INTERVAL '7 days' -- 注意字符串格式的天数写法 WHERE added = 1 AND vacation = 0;
如果天数来自字段或变量:
UPDATE employee_table SET vacation = 1, date_nastne = date_nastne + (days_to_add || ' days')::INTERVAL -- 拼接后转换为间隔类型 WHERE added = 1 AND vacation = 0;
内容的提问来源于stack exchange,提问作者Jacek
相关产品推荐
相关产品推荐

