Come creare id con AUTO_INCREMENT su Oracle?
Sembra che non ci sia il concetto di AUTO_INCREMENT in Oracle, fino alla versione 11g compresa.
Come posso creare una colonna che si comporta come l'incremento automatico in Oracle 11g?
387
3
Non esiste una cosa come "auto_increment" o "identity" colonne in Oracle a partire da Oracle 11g. Tuttavia, si può modellare facilmente con una sequenza e un trigger:
Definizione della tabella:
Definizione del trigger:
UPDATE:
La colonna
IDENTITY
è ora disponibile su Oracle 12c:o specificare i valori iniziali e di incremento, impedendo anche qualsiasi inserimento nella colonna identità (
GENERATED ALWAYS
) (di nuovo, solo Oracle 12c+)In alternativa, Oracle 12 permette anche di usare una sequenza come valore predefinito:
Qui ci sono tre gusti:
RAW
.x
è la colonna dell'identità. SostituisciFOO
con il nome della tua tabella in ciascuno degli esempi.aggiornamento:
Oracle 12c introduce queste due varianti che non dipendono dai trigger:
La prima utilizza una sequenza in modo tradizionale; la seconda gestisce il valore internamente.
Supponendo che tu intenda una colonna come quella dell'identità di SQL Server?
In Oracle, si usa una SEQUENZA per ottenere la stessa funzionalità. Vedrò se riesco a trovare un buon link e lo posterò qui.
Aggiornamento: sembra che tu l'abbia trovato da solo. Ecco comunque il link: http://www.techonthenet.com/oracle/sequences.php