C语言sqlite检测表是否存在
时间: 2023-08-02 16:41:48 浏览: 77
你可以使用以下代码来检测表是否存在:
```c
#include <stdio.h>
#include <stdlib.h>
#include <sqlite3.h>
int main(void) {
sqlite3 *db;
char *errmsg = 0;
int rc;
rc = sqlite3_open("database.db", &db);
if (rc != SQLITE_OK) {
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
sqlite3_close(db);
return 1;
}
rc = sqlite3_exec(db, "SELECT name FROM sqlite_master WHERE type='table' AND name='your_table_name';", 0, 0, &errmsg);
if (rc == SQLITE_OK) {
printf("Table exists!\n");
} else {
printf("Table does not exist!\n");
}
sqlite3_free(errmsg);
sqlite3_close(db);
return 0;
}
```
在这个例子中,我们首先使用 `sqlite3_open()` 函数打开数据库。然后,我们使用 `sqlite3_exec()` 函数执行一个 SELECT 语句来检测表是否存在。如果查询成功,我们就可以得到一个结果集,表存在;如果查询失败,表不存在。
注意,在使用 `sqlite3_exec()` 函数执行 SELECT 语句时,第四个参数是一个指向错误信息的指针,我们需要在使用完毕后使用 `sqlite3_free()` 函数释放它。
阅读全文