SQLite不会对输入错误的数据类型给出语法错误

时间:2014-10-30 07:24:18

标签: sqlite

我是sqlite3的新手,但对于任何dbms来说这似乎都很奇怪

我试图创建下表但错误输入decimal to dcimal

sqlite> CREATE TABLE ac(
   ...> name char(4),
   ...> pay  dcimal(18,5)
   ...> );

然而它允许我创建表格。 令我惊讶的是,我测试了以下CREATE TABLE

sqlite> CREATE TABLE ac(
   ...> name r(4),
   ...> pay  l(18,5)
   ...> );

在这两种情况下,它不仅允许我创建表,还允许我从中插入和检索数据。

sqlite> insert into ac values ('dbcd',18.2);
sqlite> select * from ac;
dbcd|18.2

有没有办法强制执行严格的语法检查,以便在这些垃圾数据类型上出错?

由于 萨姆

1 个答案:

答案 0 :(得分:1)

没有。 SQLite使用dynamic typing,因此它不关心您是使用dcimal还是fluffy bunnies还是根本不使用数据类型。