3

SQLite CHECK 制約に問題があります。

SQLite は、挿入された値が特定の型 (整数など) であるかどうかをチェックしません。

だから私は「typeof」機能を使って「CHECK」制約でこれをチェックしたい。

しかし、次のクエリを実行すると、エラーは発生せず、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
4

1 に答える 1