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

FEHLER:Zeile ist zu groß:Größe 8168, maximale Größe 8164

Dies liegt daran, dass jede neue Berechtigung den nspacl erweitert Spalte des pg_namespace Eintrag für dieses Schema.

Jetzt haben Tabellenblöcke in PostgreSQL eine Größe von 8kB, und jede Tabellenzeile muss in einen Block passen, daher das Limit.

In normalen Tabellen wäre das kein Problem, denn PostgreSQL speichert übergroße Felder variabler Länge „out of line“ in sogenannten TOAST Tische. Aber es gibt keine TOAST-Tabellen für Systemkataloge, also ist dieser Fluchtweg geschlossen.

Ich würde sagen, dass Sie wegen eines schlechten Designs auf diese Grenze stoßen. Anstatt jeder Rolle einzeln Zugriff auf das Schema zu gewähren, verwenden Sie eine Rollenhierarchie, weisen Sie Ihre vielen Rollen Gruppen zu und erteilen Sie Schemaberechtigungen auf Gruppenebene.