Se hai mai lavorato con i database MySQL, potresti avere familiarità con la colonna Auto_InCrement. In Oracle, utilizziamo una colonna di identità per consentire al motore del database di generare automaticamente un valore numerico per ciascuna riga aggiunta alla tabella ad un intervallo specifico.
Colonna di identità Oracle
La colonna Oracle Identity è disponibile nella versione 12c e in alto. La colonna di identità genera automaticamente un valore numerico per ogni riga inserita nella tabella.
Poiché il motore del database genera un valore univoco per ogni riga aggiunta alla tabella, funziona come una chiave primaria surrogata nel database.
In Oracle, definiamo una colonna di identità usando la sintassi seguente:
Generato [sempre | Per impostazione predefinita [su null]]
Come identità [(Identity_options)]
I parametri dell'istruzione, come visto sopra, includono quanto segue:
Colonne di identità Oracle
Scopriamo esempi di base su come utilizzare la colonna Identity nei database Oracle.
Oracle Crea la colonna di identità
Il modo più comune e consigliato di creare una colonna di identità in una tabella è durante la creazione.
Un esempio di seguito dimostra come possiamo raggiungere questo obiettivo:
Crea prodotti da tavolo (
Numero Product_id generato sempre come identità,
Product_name Varchar2 (255) non null,
Numero di quantità non controllo null (quantità> 0),
numero di prezzo,
Chiave primaria (Product_id)
);
L'istruzione sopra crea una tabella chiamata prodotti con una colonna di identità di Product_id.
Possiamo quindi inserire alcuni record di esempio nella tabella come:
INSERT IN Products (Product_name, quantità, prezzo) Valori ('Microsoft Volterra', 0, 599);
In questo caso, non abbiamo specificato il valore per la colonna Product_id nella tabella sopra. Ciò consentirà al motore del database di generare valori per le colonne aggiunte automaticamente. Come accennato, Oracle inizierà al valore di 1 e incremento di 1 per ogni riga aggiunta.
Come accennato, il tentativo di aggiungere un valore per la colonna Identity comporterà un errore:
INSERT IN PRODUCTS (Product_id, Product_Name, quantità, prezzo) Valori (2, "Microsoft Volterra", 10, 599);
Errore risultante:
Errore SQL: ORA-32795: Impossibile inserire in una colonna di identità sempre generata
Questo perché la colonna di identità è impostata per generare sempre.
Esempio 2 - Identità Oracle generata per impostazione predefinita.
Possiamo anche modificare la colonna di identità dalla generata sempre alla generata per impostazione predefinita come:
Crea prodotti da tavolo (
Numero Product_id generato per impostazione predefinita come identità,
Product_name Varchar2 (255) non null,
Numero di quantità non controllo null (quantità> 0),
numero di prezzo,
Chiave primaria (Product_id)
);
In questo caso, possiamo aggiungere manualmente un valore per la colonna Product_id.
INSERT IN PRODUCTS (Product_id, Product_Name, quantità, prezzo) Valori (1, 'Microsoft Volterra', 0, 599);
Allo stesso modo, se non forniamo un valore per la colonna, il motore del database lo genererà automaticamente.
Non è possibile inserire un valore nullo in una colonna di identità come definito sopra.
Esempio 3
Possiamo anche definire l'inizio e i valori di intervallo durante la creazione della tabella come mostrato:
Crea prodotti da tavolo (
Numero Product_id generato per impostazione predefinita come identità inizia con 10 incremento di 2,
Product_name Varchar2 (255) non null,
Numero di quantità non controllo null (quantità> 0),
numero di prezzo,
Chiave primaria (Product_id)
);
In questo caso, i valori autogenerati inizieranno a dieci e incremento di 2 per ogni nuova riga aggiunta alla tabella.
Punti da notare
Sebbene una colonna di identità fornisca una forte comodità quando si lavora con un set di dati di grandi dimensioni, viene fornito con restrizioni. Questi includono:
Conclusione
In questo post, hai scoperto i vari metodi e tecniche di lavoro con la colonna Identity nei database Oracle.