Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Czy w Oracle można WSTAWIĆ lub UAKTUALNIĆ rekord za pomocą widoku?

Widoki w Oracle mogą być aktualizowalne w określonych warunkach. To może być trudne i zazwyczaj nie jest zalecane.

Z bazy danych Oracle 10g SQL:

Uwagi dotyczące widoków, które można aktualizować

Widok z możliwością aktualizacji to widok, którego można używać do wstawiania, aktualizowania lub usuwania wierszy tabeli podstawowej. Możesz utworzyć widok, który będzie z natury aktualizowany, lub możesz utworzyć wyzwalacz ZAMIAST w dowolnym widoku, aby można go było aktualizować.

Aby dowiedzieć się, czy i w jaki sposób można modyfikować kolumny widoku z natury aktualizowalnego, wykonaj zapytanie w widoku słownika danych USER_UPDATABLE_COLUMNS. Informacje wyświetlane przez ten widok mają znaczenie tylko w przypadku widoków, które można aktualizować z natury. Aby widok mógł być z natury aktualizowany, muszą być spełnione następujące warunki:

  • Każda kolumna w widoku musi być odwzorowana na kolumnę pojedynczej tabeli. Na przykład, jeśli kolumna widoku mapuje się na wynik klauzuli TABLE (kolekcja niezagnieżdżona), widok nie jest z natury aktualizowany.
  • Widok nie może zawierać żadnej z następujących konstrukcji:
    • Operator zbioru
    • DISTINCT operator
    • Agregacja lub funkcja analityczna
    • klauzula GROUP BY, ORDER BY, MODEL, CONNECT BY lub START WITH
    • Wyrażenie kolekcji na liście SELECT
    • Podzapytanie na liście WYBIERZ
    • Podzapytanie oznaczone TYLKO DO ODCZYTU
    • Połączenia, z pewnymi wyjątkami, zgodnie z dokumentacją w Przewodniku administratora bazy danych Oracle

Ponadto, jeśli z natury aktualizowany widok zawiera pseudokolumny lub wyrażenia, nie można aktualizować wierszy tabeli podstawowej za pomocą instrukcji UPDATE, która odwołuje się do którejkolwiek z tych pseudokolumn lub wyrażeń.

Jeśli chcesz, aby widok złączenia można było aktualizować, wszystkie poniższe warunki muszą być spełnione:

  • Oświadczenie DML musi mieć wpływ tylko na jedną tabelę leżącą u podstaw połączenia.
  • W przypadku instrukcji INSERT widok nie może być tworzony Z opcją CHECK, a wszystkie kolumny, do których wstawiane są wartości, muszą pochodzić z tabeli z zachowaniem klucza. Tabela z zachowaniem klucza to taka, dla której każdy klucz podstawowy lub unikalna wartość klucza w tabeli podstawowej jest również unikalna w widoku złączenia.
  • W przypadku instrukcji UPDATE wszystkie zaktualizowane kolumny muszą zostać wyodrębnione z tabeli z zachowaniem klucza. Jeśli widok został utworzony Z OPCJĄ SPRAWDZANIA, połącz kolumny i kolumny pobrane z tabel, do których w widoku odwołuje się więcej niż jeden raz, należy chronić je przed AKTUALIZACJĄ.
  • W przypadku instrukcji DELETE, jeśli połączenie daje w wyniku więcej niż jedną tabelę z zachowaniem klucza, baza danych Oracle usuwa z pierwszej tabeli wymienionej w klauzuli FROM, niezależnie od tego, czy widok został utworzony Z OPCJĄ CHECK.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Określanie dat Wielkanocy na dowolny rok w Oracle PLSQL

  2. Kopia zapasowa bazy danych Oracle:Rodzaj kopii zapasowej i strategia tworzenia kopii zapasowych

  3. SQL, aby znaleźć słowa pisane wielkimi literami z kolumny

  4. oracle sql:zaktualizuj, jeśli istnieje, wstawiaj jeszcze

  5. Określanie lokalizacji odpowiedniego pliku tnsnames.ora