- Author
- Evan Hahn
- Published
- 11 July 2026
- Kind
- Personal blog post, with one informal performance test
- Original
- evanhahn.com/prefer-strict-tables-in-sqlite/
- Subject
- Databases and storage
- Themes
- Checking the work
What it is
Evan Hahn recommends strict tables for new SQLite work. The post sets out what STRICT does and where it falls short.
What it says
- Strict tables reject values such as text in an integer column that normal tables accept.
- Lossless conversions, such as the string 123 into an integer, are still accepted.
- Strict tables reject invalid column types, allowing only INT, INTEGER, REAL, TEXT, BLOB and ANY.
- An existing table cannot be made strict, so data must be copied.
- Strict tables need SQLite 3.37.0, and older versions cannot read databases that contain them.
- The SQLite developers favor flexible typing. The author mostly disagrees.
- The author saw no obvious speed or size difference inserting millions of rows.
What evidence it gives
The post gives short SQL examples of accepted and rejected inserts. Its one measurement is an informal script that inserted millions of rows. The author says it was not tested thoroughly.
Interests and limits
This is one developer's preference, with no stated commercial stake. The speed test was informal and not thorough. The post does not test large real applications or migrations.