Speicherplatz begrenzen?

Alles rund um die Systemverwaltung, die Administration und Konfiguration Eures Linuxsystems

Moderator: Moderatoren

Gesperrt
Wisha
Newbie
Newbie
Beiträge: 4
Registriert: 27. Okt 2004, 12:04

Speicherplatz begrenzen?

Beitrag von Wisha » 7. Dez 2004, 13:33

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?

Werbung:
corwin42
Newbie
Newbie
Beiträge: 23
Registriert: 21. Apr 2004, 23:41

Re: Speicherplatz begrenzen?

Beitrag von corwin42 » 14. Dez 2004, 11:26

Wisha hat geschrieben: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.

Benutzeravatar
foxi
Newbie
Newbie
Beiträge: 19
Registriert: 15. Jun 2004, 14:37
Wohnort: Siegen

Beitrag von foxi » 15. Feb 2005, 21:39

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: Alles auswählen

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: Alles auswählen

CHECK (count(1) > 100)
geht leider nicht.
foxi.
-
1979: TI 57
1982: DAI, Intel 8080A, 1MHz
1985: Atari ST 520+, MC 68000, 8MHz
1992: DEC Alpha 150 Jensen, Alpha 21064, 150MHz
1998: Noname, AMD K6, 233MHz
2005: HP pavilion k735de, AMD K8, 2400MHz
und allerlei aus den 26 Jahren dazwischen

Gesperrt

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast