基于时间的触发器 plsql
triggers based on time plsql
是否可以根据时间创建触发器或事件,例如如果时间是 02:00 然后从 table 中删除一条记录并将其插入其他 table,所以可以执行清理审计日志或创建备份或执行某些程序的操作。如果可能,请提供示例。
(编辑)
我创建了以下活动,但它不起作用我在这里错过了什么
mysql> 按计划在 CURRENT_TIMESTAMP + 间隔 1 分钟内创建事件 myevent 进行更新 test.test 设置编号 = 11;
这里的测试是 table,其中包含数字 column_name
create triggers based on time events like if the time is 02:00
不要使用触发器,根据数据库版本使用 DBMS_SCHEDULER or DBMS_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');
然后 运行s 'daily_report' 过程
DBMS_SCHEDULER.CREATE_PROGRAM (
program_name => 'daily_report_job',
program_type => 'STORED_PROCEDURE',
program_action => 'daily_report',
enabled => TRUE);
是否可以根据时间创建触发器或事件,例如如果时间是 02:00 然后从 table 中删除一条记录并将其插入其他 table,所以可以执行清理审计日志或创建备份或执行某些程序的操作。如果可能,请提供示例。
(编辑)
我创建了以下活动,但它不起作用我在这里错过了什么
mysql> 按计划在 CURRENT_TIMESTAMP + 间隔 1 分钟内创建事件 myevent 进行更新 test.test 设置编号 = 11;
这里的测试是 table,其中包含数字 column_name
create triggers based on time events like if the time is 02:00
不要使用触发器,根据数据库版本使用 DBMS_SCHEDULER or DBMS_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');
然后 运行s 'daily_report' 过程
DBMS_SCHEDULER.CREATE_PROGRAM (
program_name => 'daily_report_job',
program_type => 'STORED_PROCEDURE',
program_action => 'daily_report',
enabled => TRUE);