我创建"database.db",一切顺利,但为什么不在最后删除表?每次我运行它,我在创建表时得到"表已存在"错误消息.
int main()
{
sqlite3 *db; //Database Handle
char *zErr;
int rc;
char *sql;
rc = sqlite3_open("database.db", &db);
if(rc)
{
cout << "Can't open database: " << sqlite3_errmsg(db) << endl;;
sqlite3_close(db);
exit(1);
}
sql = "create table test(PID int primary key, Name text)"; //sql query
rc = sqlite3_exec(db, sql, NULL, NULL, &zErr); //execute sql statement
if(rc != SQLITE_OK)
{
if (zErr != NULL)
{
cout << "SQL error: " << zErr << endl;
sqlite3_free(zErr);
}
}
else
{
sql = "insert into test values (1,'John')";
rc = sqlite3_exec(db, sql, NULL, NULL, &zErr);
sql = "insert into test values (2,'Smith')";
rc = sqlite3_exec(db, sql, NULL, NULL, &zErr);
}
//delete the table on exit.
rc = sqlite3_exec(db, "delete from test", NULL, NULL, &zErr);
sqlite3_close(db);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
此外,主键是否可以在数据库中存在的最后一个更大的键之后自动生成?
你需要使用drop table.delete删除表中的行.
rc = sqlite3_exec(db, "drop table test", NULL, NULL, &zErr);
Run Code Online (Sandbox Code Playgroud)
SQLite将自动递增声明为主键的整数字段.看到这里.