创建事件,但表显示空值

时间:2016-05-03 02:30:05

标签: mysql sql

我编写了一个sql事件,它应该向表中添加值,但是当它不应该返回时返回null值。它应该在完成表中添加时间

prefix_funcname()

1 个答案:

答案 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秒执行一次,距其开始时间最多一分钟。