borrame.com - Colección particular de recortes de código y documentación para programación web

Canales RSS

Lo más fresco

  1. Bookmarklets Nuevo
  2. Recetario básico para CakePHP/2 Nuevo
  3. Certificado auto-firmado Nuevo

Sugerencias del chef

Lo más visitado

  1. Fecha y hora
  2. Dar formato a un número
  3. Reiniciar secuencia
  4. Vaciar un esquema
  5. Certificado auto-firmado
Compartir esta página

Campo autonumérico

En Access se llama Autonumérico. En MySQL se denomina AUTO_INCREMENT. En SQL Server recibe el nombre de IDENTITY. En PostgreSQL se conoce como SERIAL. Y en Oracle... En Oracle se lo programa uno mismo con una secuencia, un trigger y un par de huevos. Porque Oracle es cosa de hombres.

/* * Tabla con clave primaria autoincremental */ CREATE TABLE FOO (     FOO_ID NUMBER(*,0) NOT NULL,     -- ... y resto de campos     CONSTRAINT FOO_PK PRIMARY KEY (FOO_ID) ); COMMENT ON COLUMN FOO.FOO_ID IS 'Secuencia'; /* * Secuencia para la clave primaria */ CREATE SEQUENCE FOO_SEQ1 INCREMENT BY 1 START WITH 1 MINVALUE 1 CACHE 20; /* * Generador de IDs para la clave primaria */ CREATE OR REPLACE TRIGGER FOO_TRG1     BEFORE INSERT     ON FOO     REFERENCING NEW AS NEW OLD AS OLD     FOR EACH ROW BEGIN     -- Si no se ha indicado un ID generamos uno     IF :NEW.FOO_ID IS NULL THEN         SELECT FOO_SEQ1.NEXTVAL INTO :NEW.FOO_ID FROM DUAL;     END IF; END FOO_TRG1; / ALTER TRIGGER FOO_TRG1 ENABLE;

Notas

Historial

v2013-02-07
Quitar gestión de excepciones redundante.
v2009-01-20
Primera versión.

Esta página ha sido impresa el sábado 23 de septiembre de 2017 (02:23:51 +0200) desde http://borrame.com/recortes/oracle/campo-autonumerico.html. La última vez que miré contenía HTML válido con CSS fresquito y si tiene flatas de ortografía ha sido sin querer.

borrame.com es el sitio anteriormente conocido como bits.demogracia.com (no confundir con Demogracia, que sólo pasaba por ahí).

© 2005-2017 by Álvaro González (alvaro.es) • Burgos (España) • borrame.com