SQLite 3.37 erschienen

Mo, 29. November 2021, Ralf Hersel

SQLite ist ein in sich geschlossenes, leichtgewichtiges, serverloses relationales Datenbankmanagementsystem. Das "lite" in SQLite bedeutet "leicht" in Bezug auf die Einrichtung, die Datenbankverwaltung und die erforderlichen Ressourcen. Normalerweise benötigt ein RDBMS wie MySQL, PostgreSQL usw. einen separaten Serverprozess, um zu funktionieren, aber SQLite arbeitet nicht auf diese Weise.

Es greift direkt auf seine Speicherdateien zu. SQLite speichert seine Daten in einer einzigen plattformübergreifenden Datei. Da es keinen eigenen Server oder ein spezielles Dateisystem gibt, ist die Bereitstellung von SQLite so einfach wie das Erstellen einer neuen regulären Datei.

Die neue Version 3.37 ist eine routinemässige Wartungsversion von SQLite. Die grösste Neuerung in dieser Version ist die Unterstützung von STRICT-Tabellen. Aber was bedeutet das genau?

SQLite ist bestrebt, hinsichtlich des Datentyps der gespeicherten Inhalte flexibel zu sein. Wenn zum Beispiel eine Tabellenspalte den Typ "INTEGER" hat, dann versucht SQLite, alles, was in diese Spalte eingefügt wird, in eine Ganzzahl zu konvertieren. Mit anderen Worten, der Versuch, die Zeichenkette "123" einzufügen, führt dazu, dass eine ganze Zahl 123 eingefügt wird. Einige Entwickler schätzen die Freiheit, die die flexiblen Typisierungsregeln von SQLite bieten. Andere wiederum sind entsetzt über die eklatanten Regelverstösse von SQLite und bevorzugen das traditionelle starre Typsystem, das in allen anderen SQL-Datenbank-Engines und im SQL-Standard zu finden ist.

SQLite 3.37 bietet nun Unterstützung für STRICT-Tabellen in einer CREATE TABLE-Anweisung. Wenn das Schlüsselwort STRICT table-option am Ende, nach der schliessenden Klammer, hinzugefügt wird, dann gelten für diese Tabelle strikte Typisierungsregeln.

Seit der Version 3.37 kann die SQLite mehrere Datenbankverbindungen gleichzeitig offen halten. Es ist jeweils nur eine Datenbankverbindung aktiv. Jede Datenbankverbindung wird durch eine ganze Zahl zwischen 0 und 9 identifiziert. Die inaktiven Verbindungen sind immer noch offen, befinden sich aber im Leerlauf.

Eine weitere wichtige Neuerung in SQLite 3.37 sind die neu hinzugefügten Schnittstellen sqlite3_changes64() und sqlite3_total_changes64(). Diese Funktionen geben die Gesamtzahl der Zeilen zurück, die von allen INSERT-, UPDATE- oder DELETE-Anweisungen seit dem Öffnen der Datenbankverbindung eingefügt, geändert oder gelöscht wurden, einschliesslich derjenigen, die als Teil von Triggerprogrammen ausgeführt wurden.

Weitere Details zu SQLite 3.37 finden sich in der Ankündigung auf der Website des Projekts:

Quelle: https://www.sqlite.org/releaselog/3_37_0.html