phpmyadmin:数据库事件
Posted
技术标签:
【中文标题】phpmyadmin:数据库事件【英文标题】:phpmyadmin: database events 【发布时间】:2015-12-31 13:28:45 【问题描述】:当记录的日期(即将到来的)等于今天的日期时,我正在尝试将记录从一个表(即将到来的)移动到另一个表(今天)。我将如何使用 phpmyadmin 中的重复事件来执行此操作?
【问题讨论】:
为什么没有一张表,并进行一些分区? 我更想知道是否可以按照我的要求(我主要是初学者)而不是关心简单性。不过你是对的! 您的建议/计划是一个糟糕的架构。它使事情变得过于复杂而没有提供任何真正的好处。你想重新考虑一下。 回答您的问题:没有此类事件,因此您无法做出任何反应。您必须定期轮询日期比较。 真的是个坏主意:-) 好的,谢谢你的信息! 【参考方案1】:您当然可以使用在每天午夜(实际上不久之后)运行的 mysql 事件。你可以在那个事件中做任何你想做的事情。这是一个例子。
CREATE EVENT `midnight_event`
ON SCHEDULE
EVERY 1 DAY STARTS '2015-10-10 00:00:00'
ON COMPLETION PRESERVE
DISABLE ON SLAVE
DO BEGIN
START TRANSACTION;
INSERT
INTO todays_table
VALUES (col, col, col, col)
SELECT col, col, col
FROM pending_table
WHERE time_stamp >= CURDATE()
AND time_stamp < CURDATE() + INTERVAL 1 DAY;
DELETE
FROM pending_table
WHERE time_stamp >= CURDATE()
AND time_stamp < CURDATE() + INTERVAL 1 DAY;
COMMIT;
END
其他人评论了这种数据设计的智慧,行从一个表移动到另一个表。他们的 cmets 有相当大的优点。如果您想要一个包含今天事件的“表格”,请考虑一个视图。这个看起来就像你在我提到的事件中维护的表。
CREATE OR REPLACE VIEW todays_table AS
SELECT *
FROM pending_table
WHERE time_stamp >= CURDATE()
AND time_stamp < CURDATE() + INTERVAL 1 DAY
【讨论】:
以上是关于phpmyadmin:数据库事件的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Java 程序连接到 phpMyAdmin 数据库?
[phpmyadmin] phpmyadmin select command denied to user
Linux CentOS7系统中phpMyAdmin安装配置