gpt4 book ai didi

mysql - 如何在daychange时自动添加数据库行

转载 作者:行者123 更新时间:2023-11-29 14:24:28 25 4
gpt4 key购买 nike

我是数据库新手,所以我有这个表,我想编写某种每天添加或更改行的脚本。最好是在日期变化的时候。

MySQL-Workbench 显然只支持 lua 和 python 脚本,我不知道语法。

我正在寻找类似的东西

onDaychange(){
SQL-query(INSERT ...)
SQL-query(UPDATE ...)
}

否则我必须在服务器上运行永久的 c# 或 java 程序。

最佳答案

您需要 MySQL 事件 按时间运行。
您可以根据需要安排调用存储过程。

示例:

delimiter //
drop event if exists event_scheduling_sample;

create event if not exists event_scheduling_sample
-- on schedule every 86400 second starts 00:00:00
-- at timestamp( adddate( current_date, 1 ),'00:00:00' )
-- on schedule every 1 day starts current_timestamp ends current_timestamp + interval '5' day
-- on schedule every 1 day starts current_timestamp ends timestamp( current_date,'23:59:59' )
on schedule every 1 day starts timestamp( current_date + 1, '00:00:01' )

comment 'event scheduling sample'
do
call db_name.procedure_name();
;
//
delimiter ;

引用:CREATE EVENT Syntax

事件调度程序的默认状态为“禁用”。
您需要通过以下任何语句来启用它。

SET GLOBAL event_scheduler = ON;
SET @@global.event_scheduler = ON;
SET GLOBAL event_scheduler = 1;
SET @@global.event_scheduler = 1;

当事件调度程序打开时,事件调度程序线程作为守护进程在 SHOW PROCESSLIST 的输出中列出,其状态如下所示:

mysql> SHOW PROCESSLIST\G
*************************** 1. row ***************************
Id: 1
User: root
Host: localhost
db: NULL
Command: Query
Time: 0
State: NULL
Info: show processlist
*************************** 2. row ***************************
Id: 2
User: event_scheduler
Host: localhost
db: NULL
Command: Daemon
Time: 3
State: Waiting for next activation
Info: NULL
2 rows in set (0.00 sec)

一旦事件调度程序设置为“ON”,您就会看到它正在工作。

引用:MySQL Event Scheduler Configuration

关于mysql - 如何在daychange时自动添加数据库行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11245568/

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