table(没有主键和自动递增列)
表里的数据每个月清理一次
有没有语句来实现,按日期删除数据,比如删除的是7月份-8月份的,或者还能更细些7月10号-8月10号我现在用的是
set   rowcount N
delete  table
set   rowcount   0
来作删除的,每次都删除的是表中的前N行。
这里有个问题还需要大家给我解释一下,sql每次插入表的数据是按什么方式排列的?
是不是每次插入表的最新的数据,都是在最下面(按行标的递增往下排)?
有没有可能新插入的数据,会被插入表的最前面?如果有这种情况,我怕按我的删除方法
会把最新的数据删除。

解决方案 »

  1.   

    有时间字段吗?
    有的话作为删除条件
    delete table where 时间 between '' and ''
      

  2.   

    delete from table where time>='20080710' and time<='20080810'
      

  3.   

    这个意思我没明白,我举个例子
    有个table1,里面3个字段,如数据下
    city  time  date
     01    01    03
    如果我插入数据01 01 01
    是不是应该是
    city  time  date
     01    01    03
     01    01    01 
    不可能是
    city  time  date
     01    01    01
     01    01    03 
      

  4.   

    table(没有主键和自动递增列) 这样的表很少能指望按楼主的要求来删除数据SQL插入时候的顺序与有没有索引有关系
    与索引是聚簇还是非聚簇也有关系如果有聚簇索引,按照聚簇索引列desc排序,这样最新的数据应该是在最上面的