Domanda

Ho una tabella X nello spazio tabella T1 e tabella Y in tabelspace T2 . ( Oracle DB )

devo creare un trigger in tabelle T1 che sarà, in caso di aggiornamento di una colonna C nella tabella X, aggiornamento colonna D nella tabella Y (tabelle T2).

Perché sono in diversi spazi tabelle, la mia prima domanda è: si può fare a tutti?

E se sì, allora come si può fare? Quali privilegi sono tenuti a fare una cosa del genere?

È stato utile?

Soluzione

Non ha molto a che fare con lo spazio tabella. Tu fai privilegi necessario inserire nella tabella (e quel particolare colonna) anche se, e se la tabella Y è in un altro schema che il grilletto, è necessario utilizzare il nome della tabella qualificato:. (In Oracle, lo schemaname è il nome dell'utente che possiede l'oggetto)

CREATE TRIGGER aur_x
AFTER UPDATE OF c ON x
FOR EACH ROW
UPDATE schema_containing_y.Y SET D = ...
;

EDIT:
E 'appena venuto in mente che si potrebbe non avere familiarità con la distinzione fra schema e tabelle, quindi ecco una breve spiegazione. Un tablespace è un contenitore logico: esso dedfines Datafiles, caratteristiche di crescita, tipi di registrazione ecc Tablespaces possono poi essere utilizzati per memorizzare i dati associati con oggetti dello schema (tabelle, indici, viste definizioni, ma anche pacchetti e definizioni stored procedure ecc).

Uno schema è una collezione di oggetti (come le tabelle, viste, ecc) pacakages Questi oggetti sono di proprietà di un utente, e per quanto ne so, in Oracle schema ha un nome identico per l'utente che possiede il oggetti. Gli oggetti si basano sul stoccaggio fornite da uno o più spazi tabelle, ma gli spazi tabella stessi non sono gli oggetti dello schema.

In genere, uno schema viene utilizzato per raggruppare gli oggetti funzionalmente correlati (per esempio, si sarebbe in genere creare uno schema per un'applicazione). Spazi tabelle possono anche essere creati soprattutto per memorizzare tutti gli oggetti di un'applicazione, ma è anche possibile creare spazi tabelle differenti per le tabelle con caratteristiche diverse.

In genere, gli sviluppatori di applicazioni non deve preoccuparsi troppo di spazi tabelle. Il tuo DBA in genere li istituito in un modo che è conveniente per le cose come piano di backup.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top