0

Gibt es eine Möglichkeit, eine Einschränkung für eine Spalte hinzuzufügen, die ein Array ist, um die Länge zu begrenzen? Ich möchte, dass diese Arrays nicht länger als 6 sind. Und ja, ich verstehe, dass eine neue Tabelle oft besser ist als das Speichern in einem Array, aber ich bin in einer Situation, in der ein Array mehr Sinn macht.Wie kann die Länge eines Arrays in PostgreSQL begrenzt werden?

Antwort

4

Sie können eine CHECK Einschränkung der Tabellendefinition hinzufügen:

CREATE TABLE my_table (
    id serial PRIMARY KEY, 
    arr int[] CHECK (array_length(arr, 1) < 7), 
    ... 
); 

Wenn die Tabelle bereits vorhanden ist, können Sie die Einschränkung mit ALTER TABLE hinzufügen:

ALTER TABLE my_table ADD CONSTRAINT arr_len CHECK (array_length(arr, 1) < 7); 
+0

Seit 9.4 können Sie auch 'Mächtigkeit verwenden (arr) 'stattdessen –

Verwandte Themen