July 11, 2026

Loose data? Strictly scandalous

Prefer Strict Tables in SQLite

SQLite’s secret safety switch has commenters asking: why wasn’t this the default?

TLDR: SQLite has a built-in “STRICT” mode that helps stop apps from saving the wrong kind of data in the wrong place. Commenters were stunned it isn’t the standard setting already, turning a simple tip into a mini debate about safety, defaults, and why this feature feels overdue.

A quiet little database setting just sparked a surprisingly passionate mini-revolt. The post argues that SQLite — a tiny, wildly popular way apps store data — has an underrated feature called STRICT that stops people from shoving the wrong kind of info into the wrong box. In plain English: if a field is meant for numbers, STRICT helps block nonsense text from sneaking in. The writer’s pitch is simple: this should save developers from embarrassing mistakes, weird typos, and those cursed moments when a table says one thing but stores another.

But the real juice is in the comments, where the crowd immediately turned this into a “why on earth is this not already normal?” debate. One commenter flatly said it “really should be default,” while another confessed they genuinely assumed it already was. That mood — half shock, half exhausted resignation — became the vibe of the thread. There wasn’t full-on bloodsport, but there was a spicy little tension: people clearly love SQLite and its creator, yet still want this stricter behavior turned on by default. One fan practically delivered a standing ovation and a complaint in the same breath.

There was also a tiny side quest around the oddly named ANY option, which allows flexibility even in a strict table. Most people shrugged, but one commenter swooped in with a practical use: audit logs. So yes, amid the “make it default!” chants, the community still found time for a niche power-user flex. Classic internet.

Key Points

  • SQLite strict tables are created by appending `STRICT` to a table definition.
  • Strict tables reject invalid type assignments on `INSERT` and `UPDATE`, unlike normal SQLite tables.
  • Strict tables still allow values that can be losslessly converted to the target type, such as `'123'` into an integer column.
  • Strict mode rejects unsupported column type declarations and allows only `INT`, `INTEGER`, `REAL`, `TEXT`, `BLOB`, and `ANY`.
  • The article says existing tables cannot simply be altered to become strict and may require creating a new strict table and copying data.

Hottest takes

"really should be default" — tehlike
"I would’ve thought this was the default" — cdmckay
"pretty much the only disagreement with the SQLite developer" — jll29
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.