我有一个mysql表,希望每天晚上午夜“清空”它。我在网上搜索了一个答案,却发现没有什么对我有帮助。我有使用javascript来获取当前时间的想法,然后运行一个if语句,看看它是否等于午夜,以及是否要执行删除该信息的php脚本。
Javascript:
var myVar=setInterval(function(){myTimer()},1000);
function myTimer()
{
var d=new Date();
var t=d.toLocaleTimeString();
if(t == 12:00:00 AM){
$.ajax({
URL: 'delete.php';
});
};
};
delete.php:
<?php
require 'connect.php';
mysql_query("DELETE * FROM messages;");
?>
我已经通过将if语句中的时间设置为比我的实际时间提前几分钟的时间进行了测试,这是行不通的。
实现自己的事件调度程序,尤其是作为使用JavaScript的网页来实现是一个坏主意。用于其中之一
一个的cron作业运行DELETE
通过MySQL命令行界面声明
/path/to/mysql -u<user> -p"<password>" <db_name> -e "delete from messages"
或MySQL事件,例如
CREATE EVENT delete_messages_at_midnight聽
ON SCHEDULE EVERY 1 DAY聽STARTS CURDATE() + INTERVAL 1 DAY
DO DELETE FROM messages;
如果您使用MySQL事件方法:
SHOW PROCESSLIST
检查事件调度程序是否已启用。如果开启,您应该会看到“ Daemon
”用户“ event_scheduler
”的进程。SET GLOBAL event_scheduler = ON;
启用调度程序(如果当前未启用)。问题内容: 我正在努力计算午夜后的时间: 问题答案: 如果您不关心夏令时的变化,并且假设世界是理想的(不是理想的),则可以从24小时中减去结束与开始之间的持续时间(以开始与结束为间隔):
问题内容: 我试图一次从几个表中删除。我做了一些研究,并提出了 但是,我收到此错误 未捕获的Database_Exception [1064]:您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以在’p,pa … 附近使用… 我以前从未做过跨表删除操作,所以我现在还没有经验,并且一直坚持下去! 我究竟做错了什么? 问题答案: 在语句中使用a 。 另外,您可以使用…
给定使用以下方式创建的表: 如何删除列?
问题内容: 我需要一个函数,该函数可以让我从午夜起经过多少秒。我当前正在使用,但是它给了我UNIX时间戳。 如果我也能获得毫秒数,那对我来说将是一个额外的奖励。 问题答案: 如果您使用的是Java> = 8,这很容易做到: 如果您使用的是Java 7或更低版本,则必须通过Calendar从午夜开始获取日期,然后减去。
问题内容: 我想从表中删除约束。我的查询是: 但我得到一个错误: -您的SQL语法有误;检查与您的MySQL服务器版本相对应的手册,以在第1行的’constraint ‘ 附近使用正确的语法 问题答案: Mysql具有用于删除外键约束的特殊语法:
问题内容: 我有一张像这样的桌子: ID为 ,自创建表以来一直在使用。 我想要做的是删除除一个记录以外的所有记录,其中所有其他列都相同。 问题答案: 当然,您必须在所有三个位置将col1,col2扩展到所有列。 编辑:我只是从保留的脚本中重新进行了测试,然后重新测试,它在MySQL中执行。