c++代码中怎么最快速获取sqlite数据库某表中总条数,并且效率最高??
我们项目使用开源的sqlite3.c,CppSqlite3.cpp中函数来对创建sqlite数据库表。
现在,我需要在往一张表循环写入数据之前,首先获取当前表中已存在的所有数据条数。
条件时,效率比较高。
创建表方式以及表结构如下:
CppSQLite3DB m_db;
std::string sql = "create table ";
sql += TableName_Service();
sql += "(id integer primary key autoincrement,"
" sevname text not null,"
" sevitem text not null,"
" sevrecordval text not null,"
" sevcurval text not null,"
" date timestamp not null);";
m_db.execDML( sql.c_str() );
目前我的思路是执行一个select*语句,然后获取结果集。
//构造SQL
std::string sql = "select * from ";
sql += TableName_Service();
sql += " where id not NULL;";
CppSQLite3Table t = m_db.getTable( sql.c_str() );
__int64 nSum = (__int64)t.numRows();
请问大家,还有其他比较好的方式吗?多谢大家。
------解决方案--------------------
没有,COUNT(*),除非ID是连续没有缺失
------解决方案--------------------
std::string sql = "select count(*) from ";
然后直接取出结果得数。