2016-07-15 53 views
0

In Sybase habe ich Haupttabelle Test- und Audit-Tabelle test_a. Um die Audit-Tabelle zu aktualisieren, habe ich die Trigger insert, update und delete erstellt. Aber das Problem ist, wenn ich eine Update-Abfrage mit denselben Daten, die ohne Änderungen vorhanden ist, der Update-Trigger wird Feuer und Aufzeichnungen in der Audit-Tabelle für jedes Update, die Duplizierung erstellt. Ich möchte Update-Trigger zu feuern stoppen, wenn keine Änderungen vorgenommen werden, wenn Update-Abfrage verwendet wird. Es sollte nur ausgelöst werden, wenn neue Zeile eingefügt, aber nicht vorhanden ist.sybase update trigger check

mein Tisch hat

test : ID | NAME | DESC 
test_a : UPDATED_BY|DATE|ID|NAME|DESC 

können Sie vorschlagen, wie Trigger-Brennen zu stoppen, wenn keine neue Änderungen in der Abfrage aktualisiert werden.

Vielen Dank.

+0

Entfernen Sie dann den 'update' Trigger und verwenden Sie nur einen' insert' Trigger. –

+0

Ich weiß, wir können anstelle von Update ersetzen einfügen, aber ich möchte in Update-Trigger zu überprüfen, ob der Wert neu oder alt ist und wenn es neu es aktualisiert und wenn alt sollte es nicht aktualisieren. – samule

Antwort

0

Sie können nicht verhindern, dass ein Aktualisierungstrigger ausgelöst wird - eine UPDATE-Anweisung wird immer ausgelöst. Sie können jedoch den Inhalt der Tabelle 'eingefügt' und 'gelöscht' vergleichen, um festzustellen, ob tatsächlich Werte aktualisiert wurden. Wenn nicht, dann ändern Sie die Audit-Tabelle nicht.