"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をサポートしていますので、座ってテーブルをデザインしたい場合は、FirefoxのSqlite Managerプラグインを見てみてください。https://addons.mozilla.org/en-US/firefox/addon/5817/ – allenskd