FMDB MODIFY 查询无法在现有 SQLite 数据库中设置约束

FMDB MODIFY query not working to set constraints in existing SQLite database

我的 sqlite 数据库在 tbl_order 中有名为 order_id 的现有列,其中包含重复条目。 我正在尝试删除重复的条目并添加约束(UNIQUE)来解决这个问题。

所以我尝试了以下代码来解决上述问题。 我检查了以前和当前的构建版本来管理现有的和新的数据库。

它成功执行了第一个查询,但在修改约束时显示错误。

    if (previousBuildVersion < currentBuildVersion) {
        FMResultSet *result = nil;
        result = [self.objDB executeQuery:@"SELECT DISTINCT order_id FROM tbl_order ORDER BY order_id"];
        [self.objDB executeUpdate:@"ALTER TABLE 'tbl_order' MODIFY \ 'order_id' TEXT NOT NULL UNIQUE \ ;"];
    }

我在 Xcode 中收到此错误:

[logging] near "MODIFY": syntax error

DB Error: 1 "near "MODIFY": syntax error"

请提出解决此问题的建议,因为我使用 FMDB 库的经验很少。

提前致谢。

You cannot alter column in sqlite once it has been created.

仅支持 ALTER TABLE 命令的 RENAME TABLEADD COLUMN 变体。其他类型的ALTER TABLE运算如DROP COLUMN, ALTER COLUMN, ADD CONSTRAINT,等省略。

请查看此 link 了解更多详情: https://www.sqlite.org/omitted.html