PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Warum sind in PostgreSQL-Enumerationstypen Array-Nullwerte zulässig?

Sie können eine Prüfbedingung hinzufügen, um Elemente mit NULL-Werten zu verhindern.

alter table my_table
  add constraint no_null_element 
  check (cardinality(my_column) = cardinality(array_remove(my_column, null)));

Eine sauberere Lösung wäre eine normalisierte Eins-zu-Viele-Beziehung mit einer Fremdschlüsselspalte, die als not null definiert ist