DEV Community

Adriana Gómez
Adriana Gómez

Posted on

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

Top comments (0)