主题:  求救!这个数据库删除如何实现

叮咚虫

职务:普通成员
等级:1
金币:0.0
发贴:89
#12003/2/2 2:40:12
就有如何删除一个表中最新10条数据以外的所有数据

如:
表格USER中有若干条数据(未知),列DATE为加入时间数据
如何实现当超过十条数据时,自动删除旧的数据,保留最新的十条数据

谢谢!



嘎嘎

职务:普通成员
等级:1
金币:1.0
发贴:287
#22003/2/2 10:25:31
用标准的SQL语句
把游标移到第十一条记录那。然后从这开始到EOF使用DELETE



叮咚虫

职务:普通成员
等级:1
金币:0.0
发贴:89
#32003/2/2 11:43:20
能给个示例代码吗,我对这个不是很懂。
谢谢!



绿茶

职务:普通成员
等级:8
金币:10.0
发贴:19267
#42003/2/3 16:31:54
sql1="select top 10 id from tbname order by id desc"
set rs1=conn.execute(sql1)
if not rs1.eof then
i=0
id1=0
do while not rs1.eof
i=i+1
rs1.movenext
loop
if i=10 then
id1=rs1("id")
sql="delect * from tbname where id<"& id1
conn.execute sql
end if
end if

编辑历史:[这消息被germchen编辑过(编辑时间2003-02-03 16:33:57)]


叮咚虫

职务:普通成员
等级:1
金币:0.0
发贴:89
#52003/2/5 0:18:53
兄弟,谢谢你!
其它这个道理我也明白,但由于加了一条查询。对于大型的数据库,会消耗一定的资源,我想问如何通过一条SQL语句来完成。
以前看到过这样的文章,但现在不记得了,好像是可以实现的。



circle

职务:普通成员
等级:1
金币:0.0
发贴:189
#62003/2/10 7:40:53
呵呵sql 不熟也

sql="DELETE FROM tbname WHERE id NOT IN (SELECT TOP 10 id FROM tbname ORDER BY id DESC)"
一句搞定