表若存在,不创建表;不存在,创建表。
适用于解决运行一次创建数据库和表的代码后,数据库和表已经存在,再次运行该代码报错:create table failure:no such file or directory。
#include
#include
#include
#include
#include
int main(int argc,char **argv)
{
sqlite3 *db=NULL;
int len;
char *sql=NULL;
char *zErrMsg=NULL;
char *sql1=NULL;
int guess=0;
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");
guess=1;
}
while(!guess) //若guess等于0,!0=1,循环执行;若guess等于1,!1=0,循环不执行。
{
printf("create table successfully\n");
}
sqlite3_close(db);
}
表不存在,sqlite3_exec 创建表并返回SQLITE_OK,打印输出"create table successfully"
表存在,sqlite3_exec 返回值!=SQLITE_OK,打印输出"table already exist"
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)