• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Speicherplatz begrenzen?

Status
Für weitere Antworten geschlossen.

Wisha

Newbie
Hi @ all

Ist es irgendwie möglich in PostgreSQL für bestimmte Tabellen oder Datenbanken den Speicherplatz zu begrenzen bzw. die Größe der Tabelle einzuschrenken?
 

corwin42

Newbie
Wisha schrieb:
Ist es irgendwie möglich in PostgreSQL für bestimmte Tabellen oder Datenbanken den Speicherplatz zu begrenzen bzw. die Größe der Tabelle einzuschrenken?
Ist mir nicht bekannt. Das einzige, was ich mir vorstellen könnte, wäre einen Trigger an die Tabelle zu hängen, der die Sätze in der Tabelle zählt und wenn ein gewisser Wert überschritten wurde, den Insert einfach fehlschlagen lassen. Bin mir allerdings nicht sicher, ob das wirklich klappt. Bei Oracle ist es z.B. nicht möglich, in einem Trigger einer Tabelle auf die gleiche Tabelle wieder einen Select zu machen (Mutating Tables). Ich weiss nicht, ob es eine solche Beschränkung auch bei PostgreSQL gibt.
 

foxi

Newbie
Hi,

ab 8.0 können tablespaces definiert werden. Prinzipiell wäre es denkbar, den tablespace für eine Datenbank auf eine eigene Partition zu legen, wodurch die Größe der Datenbank durch die Größe der Partition begrenzt wäre. Das geht runter bis auf Tabellenebene.

Eine andere Möglichkeit wäre, eine Spalte mit Type serial einzuführen und eine constraint, die abcheckt, ob diese Spalte einen bestimmten Wert überschritten hat, also sowas wie

Code:
create table products (id serial, pn integer, name text, price numeric(10,2) CHECK (id < 100));

Ist die id > 100, schlägt der Insert fehl. Kompliziert ist es, dann wieder Zeilen wegzunehmen und die Inserts wieder freizugeben, dafür muß man dann mit der zugehörigen sequence spielen. Ein
Code:
CHECK (count(1) > 100)
geht leider nicht.
 
Status
Für weitere Antworten geschlossen.
Oben