我编写了一个sql事件,它应该向表中添加值,但是当它不应该返回时返回null值。它应该在完成表中添加时间
prefix_funcname()
答案 0 :(得分:0)
请试一试: (我删除了不必要的代码;)
SET GLOBAL event_scheduler = ON;
DROP TABLE IF EXISTS Finish;
CREATE TABLE IF NOT EXISTS Finish (
id INT PRIMARY KEY AUTO_INCREMENT,
message VARCHAR(255) NOT NULL,
created_at DATETIME NOT NULL
);
DROP EVENT IF EXISTS event_1;
CREATE EVENT IF NOT EXISTS event_1
ON SCHEDULE AT CURRENT_TIMESTAMP
ON COMPLETION PRESERVE
DO
INSERT INTO Finish(message,created_at)
VALUES('Delivery Successed',NOW());
DROP EVENT IF EXISTS event_2;
CREATE EVENT IF NOT EXISTS event_2
ON SCHEDULE EVERY 5 second
STARTS CURRENT_TIMESTAMP
ENDS CURRENT_TIMESTAMP + INTERVAL 1 MINUTE
-- ON COMPLETION PRESERVE
DO
INSERT INTO Finish(message,created_at)
VALUES('Delivery Filed',NOW());
最后检查Finish
表是否正确更新。
SELECT * FROM Finish;
注意:在设置event_scheduler
后,您正在设置OFF
ON
。所以你新创建的事件没有机会运行。
更多: event_1
是一次性事件。 event_2
每隔5秒执行一次,距其开始时间最多一分钟。