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

Aktualizowanie widoku sprzężenia bez otrzymywania błędu niezachowania klucza

Nie możesz zaktualizować column_from_table2 w tym widoku nie można go aktualizować.
Aby sprawdzić, czy jakaś kolumna może być aktualizowana, czy nie, uruchom to zapytanie:

SELECT * FROM USER_UPDATABLE_COLUMNS
WHERE table_name = 'MY_DATAVIEW';

OWNER                          TABLE_NAME                     COLUMN_NAME                    UPDATABLE INSERTABLE DELETABLE
------------------------------ ------------------------------ ------------------------------ --------- ---------- ---------
TEST                           MY_DATAVIEW                    KEY1                           YES       YES        YES       
TEST                           MY_DATAVIEW                    KEY2                           YES       YES        YES       
TEST                           MY_DATAVIEW                    COLUMN_FROM_TABLE1             YES       YES        YES       
TEST                           MY_DATAVIEW                    COLUMN_FROM_TABLE2             NO        NO         NO   

Dlaczego nie można go aktualizować? To duże pytanie.
W dokumentacji na ten temat jest cały rozdział:
http://docs.oracle.com/cd/B28359_01/server.111/b28310/views001.htm#i1006234
znajdź „Aktualizowanie widoków, które wymagają złączeń zewnętrznych”, znajduje się przykład widoku z złączeniem zewnętrznym i szczegółowe wyjaśnienie, które kolumny w tym widoku mogą i nie mogą być aktualizowane oraz dlaczego.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak uzyskać najnowszy rekord pracownika w Oracle?

  2. Łączenie dwóch tabel SQL

  3. Jak wyświetlić datę w innym formacie w Oracle?

  4. Jak policzyć wiersze zawierające wartości niezerowe w sql

  5. Jak zmienić format daty z MM/DD/RRRR na RRRR-MM-DD w PL/SQL?