基于时间plsql的触发器

问题描述 投票:-2回答:1

是否可以根据时间创建触发器或事件,如时间是02:00然后从表中删除记录并将其插入到其他表中,以便清理审计日志或创建备份或执行某些过程可以执行。如果可能,请提供示例示例。

(编辑)

我创建了下面的活动,但它没有用,我在这里错过了什么

mysql> CREATE EVENT myevent ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 MINUTE DO UPDATE test.test SET number = 11;

这里test是一个包含number_name的表

mysql sql plsql
1个回答
5
投票

根据时间事件创建触发器,例如时间是02:00

不要使用触发器,根据数据库版本使用适用的DBMS_SCHEDULERDBMS_JOB

这将在凌晨2点创建每日运行作业

BEGIN
  DBMS_SCHEDULER.create_job (
    job_name        => 'daily_report_run',
    job_type        => 'STORED_PROCEDURE',
    job_action      => 'daily_run',
    start_date      => SYSTIMESTAMP,
    repeat_interval => 'freq=hourly; byhour=2',
    end_date        => NULL,
    enabled         => TRUE);
END;
/
dbms_scheduler.create_schedule('daily_run', repeat_interval =>
  'FREQ=DAILY;BYHOUR=02');

然后运行'daily_report'程序

DBMS_SCHEDULER.CREATE_PROGRAM (
   program_name => 'daily_report_job',
   program_type   => 'STORED_PROCEDURE',
   program_action    => 'daily_report',
   enabled   => TRUE);
© www.soinside.com 2019 - 2024. All rights reserved.