sqlite数据库判断表是否存在得方法

本文介绍了一种在SQLite数据库中检查指定表是否存在的方法。通过使用SQL查询来判断表是否存在,该方法适用于Java和Android开发环境。

sqlite数据库判断表是否存在得方法




//判断数据库中的表是否存在

注意:DBInfo是表名  cmd.CommandText = "SELECT COUNT(*) FROM sqlite_master where type='table' and name='DBInfo'";



 

sqlite 中判断某个表是否存在的方法,贴出来供大家参考(java 、android)

    public boolean tabbleIsExist(String tableName){
            boolean result = false;
            if(tableName == null){
                    return false;
            }
            SQLiteDatabase db = null;
            Cursor cursor = null;
            try {
                    db = this.getReadableDatabase();
                    String sql = "select count(*) as c from "+AppConstant.DataBaseName+" where type ='table' and name ='"+tableName.trim()+"' ";
                    cursor = db.rawQuery(sql, null);
                    if(cursor.moveToNext()){
                            int count = cursor.getInt(0);
                            if(count>0){
                                    result = true;
                            }
                    }
                    
            } catch (Exception e) {
                    // TODO: handle exception
                          
            return result;
    }
在 Qt 5.15.2 中使用 SQLite3 创建数据库判断数据是否存在,可以通过执行 SQL 查询语句来实现。SQLite 提供了 `sqlite_master` 系统,用于存储数据库中所有的元信息。通过查询该,可以判断指定的是否已经存在。 以下是一个完整的示例代码,展示如何使用 Qt 创建 SQLite 数据库,并在创建数据判断是否存在: ```cpp #include <QSqlDatabase> #include <QSqlQuery> #include <QDebug> bool createTableIfNotExists(QSqlDatabase& db, const QString& tableName) { QSqlQuery query(db); // 查询 sqlite_master 判断目标是否存在 QString checkTableSql = QString("SELECT name FROM sqlite_master WHERE type='table' AND name='%1';").arg(tableName); if (!query.exec(checkTableSql)) { qDebug() << "查询是否存在失败:" << query.lastError(); return false; } if (query.next()) { qDebug() << "" << tableName << "已存在,跳过创建。"; return true; } // 如果存在,则创建 QString createTableSql = QString("CREATE TABLE %1 (" "id INTEGER PRIMARY KEY AUTOINCREMENT, " "name TEXT NOT NULL, " "age INTEGER" ");").arg(tableName); if (!query.exec(createTableSql)) { qDebug() << "创建失败:" << query.lastError(); return false; } qDebug() << "" << tableName << "创建成功。"; return true; } int main() { QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); db.setDatabaseName("example.db"); if (!db.open()) { qDebug() << "无法打开数据库"; return -1; } QString tableName = "users"; createTableIfNotExists(db, tableName); db.close(); return 0; } ``` ### 说明 - 使用 `sqlite_master` 系统可以查询数据库是否存在某个。如果查询结果中包含指定的名,则无需创建。 - 如果存在,则通过 `CREATE TABLE` 语句创建。 - 该代码使用了 Qt 的 `QSqlDatabase` 和 `QSqlQuery` 类来操作 SQLite 数据库。 - 数据库文件 `example.db` 会在程序运行时自动创建(如果不存在)。 确保在 `.pro` 文件中添加以下内容以启用 Qt SQL 模块: ```qmake QT += sql ``` 如果使用 CMake 构建项目,确保在 `CMakeLists.txt` 中包含 `Qt5Sql` 模块[^3]。 ###
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值