1

我有包含太多数据的 Microsoft Access 数据库 (.mdb)。当我通过代码或删除记录删除其中的数据时,数据将被完全删除。但是,数据库大小保持不变(即没有减少),并且自动编号字段从删除记录之前保存的最后一个数字开始。我问是否有像(MySql 中的空数据库)这样的方法,通过它我可以拥有只是数据库方案,就好像它是新创建的并且以前从未包含数据一样。谢谢

4

2 回答 2

2

您想要压缩和修复数据库。

它会因您使用的 MS-Access 版本而异,但在 2010 年,您可以在“数据库工具”功能区中找到它。

基本上,当您从 MS-Access 中删除记录时(很像硬盘上的文件),它并没有真正立即删除它。它只是将记录标记为已删除。当数据库需要写入新记录时,它可能(如果空间大小正确)尝试在这些区域之一之上进行写入,而不是增加数据库的大小。

除其他外,压缩和修复数据库会从数据库中删除所有这些已删除的记录。

这导致了这个问题。你应该定期做吗?就像对硬盘进行碎片整理一样,不一定。有时会删除数据库中的所有空格并降低性能(因为有时您的记录会定期更改大小,而我不再适合分配给它们的空间)。此外,紧凑和修复并非没有风险(我已经让它运行正常的数据库并损坏它无法修复) - 所以首先进行备份是一个非常好的主意。

于 2011-06-07T16:55:00.853 回答
2

@CodeSlave 的答案涵盖了您问题的数据库大小部分。

您还询问了 AutoNumber 字段,如何让它回到 1。Allen Browne 展示了如何遍历每个表并在此处重置 AutoNumber 字段:

http://allenbrowne.com/ser-40.html

于 2011-06-08T08:56:36.007 回答