SQLite更新方法未因无效数据类型而失败

SQLite更新方法未因无效数据类型而失败,sql,database,sqlite,Sql,Database,Sqlite,我在SQLite数据库方面遇到了一个奇怪的问题,特别是在更新查询的数据验证方面。首先,如果我使用下面的查询,当我尝试运行它时,会出现“数据类型不匹配”错误。这是正确的,也是预期的,因为字段类型被标记为整数 INSERT OR REPLACE INTO Table ('Column') VALUES ('shouldFail') 然而,人们也会期望下面的更新查询会返回相同的“数据类型不匹配”错误,但事实并非如此。我可以很好地运行以下查询,这允许我在标记为仅整数的列中以“字符串”数据类型结束 UP

我在SQLite数据库方面遇到了一个奇怪的问题,特别是在更新查询的数据验证方面。首先,如果我使用下面的查询,当我尝试运行它时,会出现“数据类型不匹配”错误。这是正确的,也是预期的,因为字段类型被标记为整数

INSERT OR REPLACE INTO Table ('Column') VALUES ('shouldFail')
然而,人们也会期望下面的更新查询会返回相同的“数据类型不匹配”错误,但事实并非如此。我可以很好地运行以下查询,这允许我在标记为仅整数的列中以“字符串”数据类型结束

UPDATE Table SET 'Column'='shouldFail' WHERE SecondColumn = 'Some value'
那么,有人能告诉我为什么SQL数据类型验证在第一个查询上有效,而在第二个查询上无效吗

非常感谢
Sam

以我对MySQL的了解,我想说
替换
不是
更新
,而是
删除,然后插入
。此外,我打赌数据库设置为仅在使用错误的数据类型更新行时发出警告,并且该值设置为默认值(0表示整数)。插入失败,更新引发警告。不幸的是,我对sqlite不太熟悉,但我听说在某些地方它们没有那么不同


注意:尝试
显示警告并查看是否有什么…

对我来说,这两种情况下都没有抛出任何错误。看看
表是如何声明的?有触发器或检查吗?(而且你应该使用
而不是
'Column'
)对不起,我给出的例子是一个简单的例子,我实际上在处理一些列,所以我使用了('Column','column2',等等)。。。表中有问题的列就在
CREATE table“table”(“column”INTEGER NOT NULL)中。
我应该补充的是,我正在iOS应用程序中使用FMDB包装器。据我所知,我没有显示警告的选项。