Oracle
 sql >> Base de données >  >> RDS >> Oracle

Oracle ajoute automatiquement la date actuelle

En supposant que

  1. Votre colonne ne s'appelle pas réellement date puisque c'est un mot réservé
  2. Votre colonne est en fait définie comme une date plutôt que comme un number
  3. Vous souhaitez remplir la colonne lorsque vous insérez une nouvelle ligne

vous pouvez définir une valeur par défaut pour la colonne.

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 vous souhaitez modifier le dt colonne lorsque vous UPDATE la ligne, vous auriez besoin d'un déclencheur

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

Un déclencheur remplacera toute valeur transmise dans le cadre de INSERT ou UPDATE déclaration pour le dt colonne. Une valeur par défaut ne le sera pas.