DEV Community

Adriana Gómez
Adriana Gómez

Posted on

2

Triggers en Oracle (campos autoincrementables)

  • Creación de una tabla Primero, debemos tener la tabla con los campos para poder crear su trigger más adelante. Para crear la tabla, lo hacemos desde la interfaz o bien, de la siguiente manera con comandos:

CREATE TABLE Animales
(id_animal number primary key,
nombre VARCHAR2(25) NOT NULL,
color VARCHAR2(25) NOT NULL);

  • Creación de una secuencia Una vez la tabla esté lista, le indicamos con una secuencia, que inicie en 1 y se incremente en 1 cada vez que se vaya a insertar un dato:

CREATE SEQUENCE canimales
START WITH 1
INCREMENT BY 1;

  • Creación del trigger Para que el campo 'id_animal' se autoincremente de una manera elegante, utilizaremos el trigger para que se encargue de obtener e insertar el valor de la secuencia automáticamente. La manera correcta de crear uno, es la siguiente:

CREATE TRIGGER TRIG_ANIMALES
BEFORE INSERT ON Animales
FOR EACH ROW
BEGIN
SELECT canimales.NEXTVAL INTO :NEW.id_animal FROM DUAL;
END;

Image description

Este trigger lo podemos encontrar en la carpeta 'Disparadores' de las propiedades de la tabla:

Image description

  • Inserción de datos Listo, ahora podemos insertar datos y cada uno tendrá un id único gracias al trigger:

INSERT INTO Animales (nombre, color)
VALUES ('Caballo', 'Blanco');

Image description

Image description

Hostinger image

Get n8n VPS hosting 3x cheaper than a cloud solution

Get fast, easy, secure n8n VPS hosting from $4.99/mo at Hostinger. Automate any workflow using a pre-installed n8n application and no-code customization.

Start now

Top comments (0)

Eliminate Context Switching and Maximize Productivity

Pieces.app

Pieces Copilot is your personalized workflow assistant, working alongside your favorite apps. Ask questions about entire repositories, generate contextualized code, save and reuse useful snippets, and streamline your development process.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay