基于时间plsql的触发器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于时间plsql的触发器相关的知识,希望对你有一定的参考价值。

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

(编辑)

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

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

这里test是一个包含number_name的表

答案

根据时间事件创建触发器,例如时间是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);

以上是关于基于时间plsql的触发器的主要内容,如果未能解决你的问题,请参考以下文章

SQL记录-PLSQL-DBMS输出

PLSQL 触发器引发应用程序错误不起作用

PLSQL 触发器:插入前

PLSQL 触发器在插入后更新记录

每行设置 new.column 的 PLSQL 触发器不起作用

检索新值时触发器在 PLSQL 中不起作用