3 ms·
https://www.sqlite.org/stricttables.html https://www.sqlite.org/stricttables.html "In a CREATE TABLE statement, if the "STRICT" table-option keyword is added t
by eesmith 4y ago
https://www.sqlite.org/stricttables.html https://www.sqlite.org/stricttables.html
"In a CREATE TABLE statement, if the "STRICT" table-option keyword is added to the end, after the closing ")", then strict typing rules apply to that table. ... The STRICT keyword at the end of a CREATE TABLE statement is only recognized by SQLite version 3.37.0 (2021-11-27) and later.
sqlite> create table x (a int);
sqlite> insert into x values ('hello');
sqlite> select * from x;
hello
sqlite> drop table x;
sqlite> create table x (a int) strict;
sqlite> insert into x values ('hello');
Runtime error: cannot store TEXT value in INT column x.a (19)
- mort96 4y agoYeah, I know about that, and I'm doing that on all my tables these days. It's just sad that the default behaviour is to allow garbage data, and that if you ever forget to put 'strict' on your tables you'll have a perfectly functional application with no sign that anything is wrong until you suddenly find corrupt data in your database.