【发布时间】:2010-12-31 12:40:49
【问题描述】:
我创建了“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;
}
另外,主键可以在数据库中存在的最后一个更大的键之后自动生成吗?
【问题讨论】:
-
你的意思是auto_increment?是的 sqlite 支持 auto_increment,如果你想坐下来设计表格,你可能想看看 Sqlite Manager plugin for firefox addons.mozilla.org/en-US/firefox/addon/5817