数据库当中的数据这样的
id(自动增加int类型)  addTime(datetime类型)
1                    2009-03-07 12:12:21
2                    2009-03-07 11:13:14
3                    2009-01-25 12:13:12
4                    2009-02-10 11:11:11假如今天是:2009-03-08号如何删除数据库当中addTime为2009-03-07的数据,
想实现的功能就是今天可以一次性删除昨天的数据,例如是10号删除9号的数据
我不想借助php程序查询出来再删除,那样麻烦,请问一下,有什么办法直接用sql语句删除吗?

解决方案 »

  1.   

    今天 CURDATE()delete from yourTable where addTime<CURDATE();
      

  2.   

    第一:写一个存储过程,定时调用。存储过程内部的逻辑就是上面楼写的语句。
    第二:做一个触发器,触发执行。我个人比较倾向于用这个,因为我喜欢被触发的一连串多米诺效应。
          你先建一张表,该表是记录你的删除操作,表可以这样定义
          表名:log_del_record
           表中字段:
           id     delTime    
          1       2009-03-07
          每次你想删除的时候,只要往这个表里插入一条数据,然后,触发器是你写的当往这个表里插入前执行,触发器的实现逻辑也是上面的语句。这样,既记录下你的删除时间,又删除掉了数据。有点自动化的感觉啊。
         delimiter //
         drop trigger if exists trg_del_yestoday //
         create trigger trg_del_yestoday before insert on log_del_record for each row 
         begin
             delete from yourTable where addTime<CURDATE();
         end;
         //
         delimiter ;
    这样就好了。你试试吧。