Normalisierung von Array-Indexbereichen in PostgreSQL 9.6 und höher
Array-Indizes in PostgreSQL können von jedem Index aus beginnen. Viele Anwendungen bevorzugen jedoch einheitlich indizierte Arrays beginnend bei 1. In diesem Artikel werden Methoden zur Normalisierung eindimensionaler Arrays zur Einhaltung dieser Konvention erläutert.
Bestehende Lösungen
Zur Normalisierung der Indizes wurde zunächst eine komplexe Lösung mit den Funktionen array_lower
und array_upper
verwendet. Diese Methoden sind zwar effektiv, aber komplex und unelegant.
Vereinfachung für PostgreSQL 9.6
Mit der Veröffentlichung von PostgreSQL 9.6 kommt eine einfachere Lösung. Das Handbuch beschreibt die Möglichkeit, die untere und/oder obere Grenze des Slice-Spezifizierers wegzulassen, der dann standardmäßig den minimalen oder maximalen Index des Arrays verwendet.
Beispiel
So normalisieren Sie ein Array-Literal mit ungleichmäßigen Indizes:
<code class="language-sql">SELECT (my_arr[:]);</code>
In unserem Beispiel werden Klammern benötigt, um Mehrdeutigkeiten aufzulösen:
<code class="language-sql">SELECT ('[5:7]={1,2,3}'::int[][:]);</code>
Diese vereinfachte Syntax erreicht eine ähnliche Leistung wie frühere Lösungen. Für frühere PostgreSQL-Versionen (9.5 oder früher) wird weiterhin empfohlen, array_lower
und array_upper
sowie einen festen maximalen Index zu verwenden.
Das obige ist der detaillierte Inhalt vonWie kann ich Array-Indexbereiche in PostgreSQL 9.6 und höher normalisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!