Hintergrund des heutigen Beitrags ist die Migaration einer Access-Anwendung/Datenbank in eine Webanwendung. Da ich ein fauler Mensch bin, wollte ich es mir einfach machen und so wenig Code wie möglich schreiben. In der Access-Anwendung gab es auch noch einiges an Visual Basic-Code1. Die Anwendung soll MAC-Adressen aus einen gewissen Block verwalten. Es gibt die folgenden Anforderungen: Adressen werden in Bereichen verwaltet es dürfen keine Adressen doppelt vergeben werden Bestimmung der freien und verwendeten Adressen Analyse, ob die Adressen lückenlos vergeben wurden Migartion der alten Daten MAC Adressen müssen in dem Bereich von FE:EB:CC:00:00:00 bis FE:EB:CC:FF:FF:FF Diese Anforderungen sahen für mich so aus, dass man sie direkt in PostgreSQL implementieren kann.
Mir ist kein Titel eingefallen und es sollte kein Clickbait sein - gut ich ich habe habe nichts von den Klicks. SQL von Ahnungslosen wäre auch ein guter Titel. Ausgangspunkt Eine Webanwendung, welche ein Java Backend hat. Als Datenbank wird PostgreSQL 10 benutzt. Die Anwendung ist im produktiven Einsatz. CREATE TABLE foo ( special_id1 BIGINT, special_id2 VARCHAR(255), date_ DATE, time_ TIME WITHOUT TIME ZONE, data TEXT, PRIMARY KEY (special_id1, special_id2, date_, time_) ); CREATE INDEX idx_foo ON foo (date_); CREATE INDEX idx_bar ON foo (time_); Die problematische Anfrage sieht wie folgt aus: