3

我对 SQLite CHECK 约束有疑问。

SQLite 不检查插入的值是否属于特定类型(例如整数)。

所以我想通过使用“typeof”函数的“CHECK”约束来检查这一点。

但是当我执行以下查询时,我没有收到任何错误,并且 SQLite INSERT 没有消息的字符串。

怎么了?

sqlite> CREATE TABLE test2 (test INTEGER CHECK(TYPEOF(test) == 'INTEGER'));
sqlite> INSERT INTO test2 (test) VALUES (5); //Should work
sqlite> INSERT INTO test2 (test) VALUES ('dd'); //Should not work, but works
4

1 回答 1

1

我在 SQLite3 数据库上使用 NavicatLite 尝试了您的查询,它显示

19 - 约束失败

对于文本插入,所以它似乎是正确的。

请试试

select sqlite_version();

并检查它是否显示高于 3.3 版的内容(LS_dev 感谢您的评论)

于 2016-09-30T12:58:37.850 回答