Laden...

Datenbanktrigger

Erstellt von oli001 vor 11 Jahren Letzter Beitrag vor 11 Jahren 1.119 Views
O
oli001 Themenstarter:in
449 Beiträge seit 2005
vor 11 Jahren
Datenbanktrigger

verwendetes Datenbanksystem: Oracle9

Hi,

ich habe zwei Tabellen, die von der Struktur identisch sind. Die eine ist eine Produktivtabelle, hier werden nur die Daten von 2 Wochen gespeichert, die andere dient als History. Hintergrund: Es werden pro Tag ca 100.000 Zeilen geschrieben, und bei 9 bis 10 Mio. Zeilen werden dann Summenfunktionen usw. sehr langsam...

Nun wollte ich das über einen Trigger lösen, wenn in Prodtabelle Zeile eingefügt, dann in History-Tabelle schreiben. So etwa:


insert into history select * from NEW (NEW ist die referenzierte neue Zeile)

Geht aber nicht. Gibts ne einfache Möglichkeit, oder muss ich wirklich:


insert into history values (:NEW.ID, NEW.DATUM, .....)

Sind 68 Spalten und ich bin schreibfaul 😃

Grüße Oli

Viele Grüße, Oli

A
764 Beiträge seit 2007
vor 11 Jahren

Sind 68 Spalten und ich bin schreibfaul 🙂

ich fürchte da musst du durch.. 😁

T
2.219 Beiträge seit 2008
vor 11 Jahren

Möglich wäre es auch per DataReader o.ä. das Schema der Tabelle auszulesen und entsprechend eine Abfrage generieren zu lassen.
Der Aufwand wäre bestimmt geringer als per Hand alles zu tippen 😮)

Beispiel für Umsetzung:
http://support.microsoft.com/kb/310107/de

Ist im Grund auch mit anderen Datenbanken möglich 😮)

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

M
184 Beiträge seit 2012
vor 11 Jahren

Ich kenne mich mit Oracle nicht aus, aber du könntest doch

insert into history select * from produktiv where ID = :NEW.ID;

schreiben, oder kann Oracle das nicht?