0

我有一个每天接收公众意见的系统。每天早上启动时,我都想运行一个 VB 脚本,将最新的 500 个条目之外的每个输入移动到备份表中。这是系统活动的完整档案。

我想将初始 500 行(按列 k 排序)之外的每一行从一个表移动到另一个表(从表“活动”中插入行到表“存档”中,然后从表“活动”中删除行)。

我希望能够将其作为单个 SQL 语句来执行,但并没有取得太大的成功。是否有一种合理的方法可以将其作为单个(嵌套?)Jet SQL 语句来执行?是否必须编写一些中间 VB 脚本来处理此操作?

提前致谢,

4

2 回答 2

0

看起来我可能不得不做这样的事情。

INSERT INTO ChatArchive (MsgId, MsgText, Filtered, LastFetched) SELECT MsgID, MsgText, Filtered, LastFetched FROM ChatCurrent WHERE ID <= (SELECT MAX(ID) from ChatCurrent) - 500;
DELETE FROM ChatCurrent WHERE MsgId <= (SELECT MAX(MsgId) FROM ChatArchive);

500 这里是我想保留在系统中的行数。另一种方法是将 MsgIds 列表存储在某处(在 VB 中)并从中构造第二个查询。

于 2010-02-03T04:22:12.503 回答
0

为什么不以某种方式标记旧记录,以便普通用户不再查看它们?当您想要查询两个表等中的数据时,使用存档表将是一件很痛苦的事情。

于 2010-02-03T05:27:25.253 回答