Consideremos el script original, basado en la versión 11g:
---------
-- 11g --
---------
CREATE TABLE ORDERS (
ID NUMBER NOT NULL,
...
);
/
ALTER TABLE ORDERS
ADD CONSTRAINT PK_ID PRIMARY KEY (ID);
/
CREATE SEQUENCE SEQ_ORDERS
START WITH 1000
INCREMENT BY 1
NOCACHE
NOCYCLE;
/
CREATE OR REPLACE TRIGGER TRG_I_ORDERS
BEFORE INSERT
ON ORDERS
FOR EACH ROW
BEGIN
:NEW.ID = SEQ_ORDERS.NEXTVAL
END;
/
Anteriormente, se empleaba un trigger para incrementar el ID: recuperar el valor de un sequence y asignarlo al campo.
Desde la versión 12c, obtenemos la misma funcionalidad con IDENTITY Column.
---------
-- 12c --
---------
CREATE TABLE ORDERS(
ID NUMBER GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
...
);
/
Top comments (0)