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

Oracle agrega automáticamente la fecha actual

Suponiendo que

  1. Su columna en realidad no se llama date ya que esa es una palabra reservada
  2. Su columna en realidad está definida como una date en lugar de como un number
  3. Desea completar la columna cuando inserta una nueva fila

puede definir un valor predeterminado para la columna.

SQL> ed
Wrote file afiedt.buf

  1  create table products (
  2  id number not null,
  3  dt date   default sysdate not null
  4* )
SQL> /

Table created.

SQL>
SQL> insert into products( id ) values( 1 );

1 row created.

SQL> select * from products;

        ID DT
---------- ---------
         1 20-NOV-12

Si desea modificar el dt columna cuando UPDATE la fila, necesitarías un gatillo

CREATE OR REPLACE TRIGGER trg_products
  BEFORE INSERT OR UPDATE ON products
  FOR EACH ROW
BEGIN
  :new.dt := sysdate;
END;

Un disparador anulará cualquier valor pasado como parte de INSERT o UPDATE declaración para el dt columna. Un valor predeterminado no lo hará.