Database / SQLite Interview questions
What is the STRICT keyword used for in SQLite table definitions?
Adding STRICT to a CREATE TABLE statement opts that specific table out of
SQLite's usual flexible type affinity behavior, instead enforcing that inserted values must actually match
the column's declared type — much closer to how most other SQL databases behave by default.
CREATE TABLE person ( id INTEGER PRIMARY KEY, age INTEGER ) STRICT; INSERT INTO person (age) VALUES ('not a number'); -- fails: STRICT enforces type matching
Without STRICT, that same insert would silently succeed, storing the text value in the
INTEGER-affinity column as discussed with type affinity. STRICT tables were added
specifically to give developers who want more predictable, conventional type enforcement an explicit opt-in,
without changing SQLite's default (flexible, dynamically-typed) behavior for tables that don't request it.
More Related questions...