SQLite is is an open source self-contained, lightweight serverless relational database management system. The lite in SQLite means lightweight in terms of setup, database administration, and required resources.
Normally, an RDBMS such as MySQL, PostgreSQL, etc., requires a separate server process to operate, but SQLite does not work this way. It accesses its storage files directly.
SQLite stores its data in a single cross-platform file. As there’s no dedicated server or specialized filesystem, deploying SQLite is as simple as creating a new regular file.
Related: SQLite DB Browser, How to Install and Use it on Linux
Now SQLite 3.37 is out as the latest update to this widely-used database library used by countless applications and other software. Here’s what’s new.
What’s New in SQLite 3.37
Version 3.37 is a routine maintenance release of SQLite. The biggest new feature in this release is support for STRICT tables. But what’s that means exactly?
As you know, SQLite strives to be flexible regarding the datatype of the content that it stores. For example, if a table column has a type of “INTEGER”, then SQLite tries to convert anything inserted into that column into an integer. In other words, an attempt to insert the string ‘123’ results in an integer 123 being inserted.
Well, some developers appreciate the freedom that SQLite’s flexible typing rules provide. Conversely, other are aghast at SQLite’s flagrant rule-breaking and prefer the traditional rigid type system found in all other SQL database engines and in the SQL standard.
Now SQLite 3.37 brings support for STRICT tables 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.
Beginning with version 3.37, the CLI has the ability to hold multiple database connections open at once. Only one database connection is active at a time. Each database connection is identified by an integer between 0 and 9. The inactive connections are still open but are idle.
Another significant addition with SQLite 3.37 are the newly added sqlite3_changes64()
and sqlite3_total_changes64()
interfaces. These functions return the total number of rows inserted, modified or deleted by all INSERT, UPDATE or DELETE statements completed since the database connection was opened, including those executed as part of trigger programs.
More details on SQLite 3.37 can be found via the announcement on the project’s website.