¿Cómo crear un id con AUTO_INCREMENT en Oracle?
Parece que no existe el concepto de AUTO_INCREMENT en Oracle, hasta la versión 11g inclusive.
¿Cómo puedo crear una columna que se comporte como autoincremento en Oracle 11g?
387
3
No existen las columnas "auto_increment" o "identity" en Oracle a partir de Oracle 11g. Sin embargo, se puede modelar fácilmente con una secuencia y un trigger:
Definición de la tabla:
Definición de activación:
UPDATE:
La columna
IDENTITY
ya está disponible en Oracle 12c:o especificar los valores de inicio e incremento, impidiendo también cualquier inserción en la columna de identidad (
GENERATED ALWAYS
) (de nuevo, sólo en Oracle 12c+)Como alternativa, Oracle 12 también permite utilizar una secuencia como valor por defecto:
Aquí hay tres sabores:
x
es la columna de identidad. SustituyeFOO
por el nombre de tu tabla en cada uno de los ejemplos.actualización:
Oracle 12c introduce estas dos variantes que no dependen de triggers:
La primera utiliza una secuencia de forma tradicional; la segunda gestiona el valor internamente.
¿Suponiendo que se refiere a una columna como la columna de identidad de SQL Server?
En Oracle, se utiliza una SECUENCIA para lograr la misma funcionalidad. Voy a ver si puedo encontrar un buen enlace y publicarlo aquí.
Actualización: parece que lo has encontrado tú mismo. Aquí está el enlace de todos modos: http://www.techonthenet.com/oracle/sequences.php