/ / Oracle Trigger UPDATE zamiast INSERT - oracle, plsql, triggers, oracle11g

Oracle Trigger UPDATE zamiast INSERT - oracle, plsql, triggers, oracle11g

Próba znalezienia sposobu napisania wyzwalacza Oracle, który sprawdzałby przed wstawieniem, aby zobaczyć, czy dopasowanie zostało znalezione w kolumnie głównej, a jeśli tak, zaktualizować informacje o wierszu zamiast wstawiania nowego wiersza.

Na to patrzyłem before insert. Czy istnieje sposób na anulowanie wstawiania w oparciu o kryteria w tym bloku?

Ja również przyjrzałem się użyciu instead of klauzula, ale wymaga pracy nad poglądem.

Jaki jest najlepszy sposób na zrobienie tego?

Odpowiedzi:

4 dla odpowiedzi № 1

Użyj instrukcji MERGE zamiast INSERT.


0 dla odpowiedzi nr 2

Użyj instrukcji scalania.

MERGE INTO <<your table>> t
USING (<<your list of records - can be the result of a SELECT >>)
ON ( <<join between table and list of records >>)
WHEN MATCHED THEN
UPDATE SET << the rows you want to set>>
WHEN NOT MATCHED THEN
INSERT (<<columns of table>>)
VALUES (<<value>>)

https://oracle-base.com/articles/9i/merge-statement