Cómo crear una tabla con un campo autoincremento en Oracle sin necesidad de usar secuencias. Creamos una tabla con un campo autoincremental, clave primaria e insertamos algunos registros para verificar que se genera el autoincremento correctamente.
- Requisitos para crear tabla en Oracle.
- Crear tabla con campo autoincremental clave primara en Oracle 21c.
- Insertar registros en la tabla con campo autoincremental en Oracle para verificar su funcionamiento.
Requisitos para crear tabla en Oracle
Necesitaremos disponer de un servidor con Oracle Database y usuario y contraseña de acceso al servidor. Para crear una tabla necesitaremos disponer de un cliente con acceso a Oracle. O bien podemos usar el propio SQL Plus que incorpora Oracle.
En este tutorial usaremos Oracle SQL Developer, una herramienta cliente de Oracle completa y gratuita, cuya descarga está disponible en la web oficial de Oracle. Además, no requiere de instalación, se descarga el fichero .zip (en el momento de este artículo la versión 23.1.1, con fichero ZIP sqldeveloper-23.1.1.345.2114-x64.zip), se descomprime y podremos conectarnos con nuestro servidor Oracle directamente (sin instalar el cliente ni ningún otro software).
Para este tutorial hemos usado Oracle Database 21c, desplegado en segundos con Docker, como indicamos en este tutorial:
Crear tabla con campo autoincremental clave primara en Oracle 21c
Desde Oracle SQL Developer, accediendo con un usuario con privilegios suficientes, ejecutaremos la siguiente sentencia SQL (como indicamos más adelante), para crear la tabla «ALBARANES», para el usuario «USRFACTURAS», en el tablespace «FACTURACION»:
1 2 3 4 5 6 7 8 9 10 11 12 |
CREATE TABLE "USRFACTURAS"."ALBARANES" ( "CODIGO" NUMBER(10,0) GENERATED ALWAYS AS IDENTITY MINVALUE 1 MAXVALUE 99999999 INCREMENT BY 1 START WITH 1 NOORDER NOCYCLE NOT NULL ENABLE, "CODIGO_CLIENTE" NUMBER(10,0), "IMPORTE" NUMBER(10,2), "FECHA" DATE, CONSTRAINT PK_ALBARANES_CODIGO PRIMARY KEY(CODIGO) ) SEGMENT CREATION DEFERRED PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING TABLESPACE "FACTURACION"; |
La consulta SQL anterior realizará las siguientes acciones:
- Creará la tabla «ALBARANES» para el usuario «USRFACTURAS» en el tablespace «FACTURACION».
- La tabla contendrá cuatro campos:
- CODIGO: de tipo autoincremento y clave primaria. El valor de este campo se generará de forma automática con un número, que irá del 1 al número de registros de la la tabla, de forma incremental.
- CODIGO_CLIENTE: de tipo numérico sin decimales.
- IMPORTE: de tipo numérico con dos decimales, para moneda.
- FECHA: de tipo fecha.
- El resto de parámetros de creación de la tabla los establece el propio Oracle (no es necesario indicarlos).
En SQL Developer, para ejecutar una consulta SQL, pulsaremos en el menú «Herramientas» – «Hoja de Trabajo de SQL»:
Elegiremos la conexión a Oracle (o crearemos una nueva):
Y pegaremos la consulta SQL anterior (o bien introduciremos una personalizada). Para ejecutar la consulta SQL pulsaremos en el botón «Sentencia de ejecución» (o bien la combinación de teclas Control + INTRO):
Si se ha ejecutado la consulta SQL correctamente, nos mostrará el mensaje:
Table «USRFACTURAS».»ALBARANES» creado.
Insertar registros en la tabla con campo autoincremental en Oracle para verificar su funcionamiento
En SQL Developer elegiremos la tabla creada anteriormente, en este caso la tabla «ALBARANES» [1], y pulsaremos en la pestaña «Datos» [2]. Vamos a insertar varios registros sin poner valor en el campo «CODIGO» para verificar que, efectivamente, se le asigna un valor numérico autoincremental [3]:
Para guardar los cambios pulsaremos en el botón «Confirmar cambios» o pulsando la tecla «F11»:
Comprobaremos que el valor del campo CODIGO del primer registro de la tabla ALBARANES es 1. Y si insertamos varios registros más (sin poner valor en el campo CODIGO), podremos verificar que se le asigna valor incremental automáticamente 1, 2, 3, 4, …: