sql >> Databasteknik >  >> RDS >> Oracle

Uppdatera en Join-vy utan att få ett felmeddelande om icke-nyckelbevarad

Du kan inte uppdatera column_from_table2 i den här vyn är den inte uppdateringsbar.
För att kontrollera om någon kolumn är uppdateringsbar eller inte, kör den här frågan:

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   

Varför går det inte att uppdatera? Det är en stor fråga.
Det finns ett helt kapitel i dokumentation om detta ämne:
http://docs.oracle.com/cd/B28359_01/server.111/b28310/views001.htm#i1006234
hitta "Uppdatera vyer som involverar yttre kopplingar", det finns ett exempel på en vy med yttre koppling och detaljerad förklaring vilka kolumner i denna vy som kan och inte kan uppdateras och varför.



  1. Hur påverkar lagringsbackend Datomic?

  2. GitHub Commit Error:Tillstånd nekad fatal:Det går inte att bearbeta sökväg ~/App_Data/aspnet-MyProject.mdf

  3. Hur man importerar en databas med hjälp av kommandoraden

  4. PHP-skript kommer inte att ansluta till databasen?