检查 table 在 SQLite 中是否为空

Check if table is empty in SQLite

我想知道是否有更好的方法来检查给定数据库的 table 是否为空。

我的版本:

import sqlite3

con = sqlite3.connect('emails.db')
cur = con.cursor()

cur.execute("SELECT count(*) FROM (select 1 from my_table limit 1);")
print(cur.fetchall()[0][0])

con.close()

输出:

0 # If table `my_table' is empty
1 # If table 'my_table' is not empty

你可以使用:

SELECT EXISTS (SELECT 1 FROM my_table);

这将 return 1 行 1 列,如果 table 为空,则为 0,如果包含任何行,则为 1

EXISTS 将在 table 中找到第一行后立即 return 并且不会扫描整个 table.