如何检查-我的SQLite3数据库是否为空?

ohfgkhjo  于 2023-10-23  发布在  SQLite
关注(0)|答案(2)|浏览(293)

我使用Python 2.7和SQLite3。当我开始使用数据库时,我想检查我的数据库是否为空。我的意思是它是否已经有任何表或没有。
我的想法是从任何表中使用简单的SELECT。并将此选择 Package 在try:exception块中。所以,如果异常被抛出,那么我的数据库是空的。
也许有人知道更好的检查方法。

kulphzqa

kulphzqa1#

SELECT name FROM sqlite_master
将给予所有表的名称。然后你可以执行fetchall并检查列表的大小,甚至是内容。不需要try/catch(如果数据库不包含任何表,列表将为空)

xpcnnkqh

xpcnnkqh2#

这并不能直接回答你的问题,但我更喜欢使用user_version来有效地检查我的数据库。每当我创建一个DB时,我都会将user_version设置为一个非零值(通常从1开始,并随着我对模式的破坏性更改而递增),同时还设置了CREATE TABLE调用和相关的引导。这不仅帮助我知道我的数据库不是空的,而且还帮助我知道它已经按照我的预期进行了初始化。如果user_version与预期的不同,我可以返回一个错误或将模式迁移到支持的版本。
显然,这只适用于您创建/拥有的DB。如果您试图检查任意DB的内容,sqlite_master是一种方法。

相关问题