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

Canales RSS

Lo más fresco

  1. Enlaces sobre desarrollo web Modificado
  2. Cadena aleatoria en PHP Modificado
  3. Recortar texto Nuevo

Sugerencias del chef

Lo más visitado

  1. Canales RSS
  2. Formato condicional según el día de la semana
  3. Enlaces sobre desarrollo web
  4. Recortar texto
  5. Convertir de minutos a horas
Compartir esta página

Fechas automáticas

A veces viene bien tener un par de columnas en una tabla para controlar cuándo se ha creado y modificado cada fila. Con Oracle —¡faltaría más!— se puede automatizar estupendamente.

CREATE TABLE FOO ( FOO_ID NUMBER(*,0) NOT NULL, -- ... y resto de campos FECHA_INS DATE DEFAULT SYSDATE NOT NULL, FECHA_MOD DATE DEFAULT SYSDATE NOT NULL, CONSTRAINT FOO_PK PRIMARY KEY (FOO_ID) ); COMMENT ON COLUMN FOO.FECHA_INS IS 'Fecha de inserción'; COMMENT ON COLUMN FOO.FECHA_MOD IS 'Fecha de modificación'; /* * Mantener actualizada la fecha de modificación */ CREATE OR REPLACE TRIGGER FOO_TRG1 BEFORE UPDATE ON FOO REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW BEGIN :NEW.FECHA_MOD := SYSDATE; END FOO_TRG1; / ALTER TRIGGER FOO_TRG1 ENABLE;

El mecanismo es sencillo cual botijo: el DEFAULT SYSDATE rellena los campos con la fecha actual al insertar la fila (INSERT) —siempre que no se asignen valores a mano— y el trigger cambia la fecha de actualización al modificar la fila (UPDATE).

Historial

v2013-02-07
Quitar gestión de excepciones redundante.
v2011-06-21
Hacemos NOT NULL las columnas.
v2009-04-16
Primera versión.

Esta página ha sido impresa el jueves 13 de agosto de 2026 (17:08:53 +0200) desde https://borrame.com/recortes/oracle/fechas-automaticas.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.

Lorem ipsum dolor sit amet.

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