sqlite3 alter命令删除我的数据库

时间:2011-03-07 22:04:14

标签: iphone database ipad sqlite alter-table

在我的应用程序的开头,我正在现有的sqlite3数据库上运行sqlite3命令。 命令就是这样:

    sqlStmt = "ALTER TABLE projects ADD COLUMN guid integer DEFAULT 0";
if (sqlite3_prepare_v2(db, sqlStmt, -1, &compiledStmt, NULL) == SQLITE_OK){
    sqlite3_step(compiledStmt);
}

所发生的是我的所有数据都丢失了,并且“日志”文件正在显示(并且从未被删除)。 我不知道该做什么 - 我知道它与交易和锁定有关。 请帮忙。

1 个答案:

答案 0 :(得分:0)

这是正常行为,因为Sqlite不支持复杂操作。 请refer to the documentation.

所以,你所要做的就是:

  1. 创建临时表。
  2. 将所有数据放入其中。
  3. 删除初始表。
  4. 使用新字段创建表格。
  5. 将数据从临时表发送到新表
  6. 如果您需要更多帮助,请告诉我们您的表结构。