SQLITE:使用CHECK TYPEOF()检查INSERT的类型

时间:2013-10-16 06:58:58

标签: sql sqlite constraints typeof

我遇到了SQLite CHECk约束问题。

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

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

但是当我执行以下查询时,我没有收到任何错误,SQLite会在没有消息的情况下插入字符串。

怎么了?

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

1 个答案:

答案 0 :(得分:0)

我在SQLite3数据库上使用NavicatLite尝试了查询并显示

  

19 - 约束失败

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

请尝试

select sqlite_version();

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