sql >> Base de Datos >  >> RDS >> Oracle

Clave principal de identidad generada automáticamente de Oracle SQL

Columnas de identidad es una característica soportada por Oracle desde la versión 12c.
En Oracle 11 no funciona, debes usar una secuencia y un disparador, de esta manera:

CREATE TABLE xpto (
id NUMBER PRIMARY KEY,
description VARCHAR2(200) NOT NULL
);

CREATE SEQUENCE xpto_seq;

set define off
CREATE OR REPLACE TRIGGER xpto_id 
BEFORE INSERT ON xpto 
FOR EACH ROW
WHEN ( new.id IS NULL )
BEGIN
   :new.id := xpto_seq.nextval;
END;
/