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 TABLE
和 ADD COLUMN
变体。其他类型的ALTER TABLE
运算如DROP COLUMN, ALTER COLUMN, ADD CONSTRAINT,
等省略。
请查看此 link 了解更多详情:
https://www.sqlite.org/omitted.html
我的 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 TABLE
和 ADD COLUMN
变体。其他类型的ALTER TABLE
运算如DROP COLUMN, ALTER COLUMN, ADD CONSTRAINT,
等省略。
请查看此 link 了解更多详情: https://www.sqlite.org/omitted.html