PostgreSQL 8.3.1 on x86_64-unknown-linux-gnu, compiled by GCC gcc (GCC) 4.2.0
Datenbestand ca. 30 Millionen Rows/a
Die Aufgabe besteht darin, Teile des Datenbestandes zu exportieren und die Zeile physikalisch zu löschen.
Okay, die Daten in eine XML Datei oder in eine Tabelle zu pinseln ist kein Probelem.
Export der Daten:
Select * from t1 join t2 using(pk) join t3 using(pk) join t3 using(pk) where pk=id
Ich suche nach einer einfachen Lösung die Daten bei Bedarf wieder zu importieren.
Meine Idee:
Via Prozedur eine Datei mit Copy oder Insert-Anweisungen zu schreiben.
Dazu brauche ich aber den Name des Schemas der Tabellen sowie die Spaltenname o.g. Select Anweisung.
Die Verwendung des information_schemas hilft mir nicht wirklich weiter.
Frage:
Wie komme ich an die Metainformationen einer SQL Anweisung in PLPGSQL ran?
Dazu brauche ich aber den Name des Schemas der Tabellen sowie die Spaltenname o.g. Select Anweisung.
Die Verwendung des information_schemas hilft mir nicht wirklich weiter.
Frage:
Wie komme ich an die Metainformationen einer SQL Anweisung in PLPGSQL ran?
… table partitioning …
als lösung der archivierung von daten …
dazu brauchst du dann z.B. trigger (auf loeschen oder loesch-flag) und ne trigger-fkt. welche wiederum das schema “information_schema” verwenden kann um für beliebige tablellen die notwendigen meta-informationen zur erzeugung dynamsichen SQLs zu finden.
mit ein wenig gockle und pg-docu zu obigen begriffen solltest erstmal ein stueck weiter kommen.
die loesung sollte lauten: loesch-trigger -> archivieren
also bleibt nur noch das teil-problem archivieren
und dazu brauchst du nichtmal schema-informationen, wenn die archiv-tabelle exakt die gleiche struktur hat wie die quell-tabelle … weil die werte der DELETED row in OLD sowieso schon die richtigen typen besitzen - in der gleichen reihenfolge wie die spalten in der ziel-tabelle sind … das schoene am insert ist, dass man die spalten auch weglassen kann … einfach insert into archive values (…) - wenn man das “values” in PL/pgsql ueberhaut an dieser stelle braucht