Linux C代码判断:sqlite3 表是否存在
C代码判断:sqlite3 表是否存在。若不存在,创建表;存在,不创建。适用于解决运行一次创建数据库和表的代码后,数据库和表已经存在,再次运行该代码报错:create table failure:no such file or directory。
·
表若存在,不创建表;不存在,创建表。适用于解决运行一次创建数据库和表的代码后,数据库和表已经存在,再次运行该代码报错:create table failure:no such file or directory。
#include <stdio.h>
#include <string.h>
#include <sqlite3.h>
#include <errno.h>
#include <stdlib.h>
int main(int argc,char **argv)
{
sqlite3 *db=NULL;
int len;
char *sql=NULL;
char *zErrMsg=NULL;
char *sql1=NULL;
len = sqlite3_open("temperature_report.db",&db); //创建数据库
if(len) //判断数据据是否创建成功
{
printf("can't open database:%s\n",strerror(errno));
sqlite3_close(db);
exit(1);
}
printf("open a sqlite3 database name temperature_report.db successfully!\n");
//创建表的sql语句
sql="CREATE TABLE temperature_data(ID INT PRIMARY KEY,SN CHAR(10),DATIME CHAR(50),TEMPERATURE CHAR(10));";
if(sqlite3_exec(db,sql,NULL,NULL,&zErrMsg)!=SQLITE_OK)
{
printf("table already exist\n");
}
else
{
printf("create table successfully\n");
}
sqlite3_close(db);
}
表不存在,sqlite3_exec 创建表并返回SQLITE_OK,打印输出"create table successfully"
表存在,sqlite3_exec 返回值!=SQLITE_OK,打印输出"table already exist"
更多推荐
已为社区贡献1条内容
所有评论(0)