sql >> Database >  >> RDS >> Oracle

Oracle automatisch huidige datum toevoegen

Ervan uitgaande dat

  1. Je kolom heet niet echt date aangezien dat een gereserveerd woord is
  2. Uw kolom is eigenlijk gedefinieerd als een date in plaats van als een number
  3. U wilt de kolom vullen wanneer u een nieuwe rij invoegt

u kunt een standaardwaarde voor de kolom definiëren.

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

Als u de dt . wilt wijzigen kolom wanneer u UPDATE de rij, dan heb je een trigger nodig

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

Een trigger overschrijft elke waarde die wordt doorgegeven als onderdeel van de INSERT of UPDATE statement voor de dt kolom. Een standaardwaarde niet.




  1. Tellen hoeveel MySQL-velden op een rij zijn gevuld (of leeg)

  2. SQL IN-instructie - houd duplicaten bij het retourneren van resultaten

  3. Zoek hiaten in een reeks in SQL zonder extra tabellen te maken

  4. MySQL Veel-op-veel selecteren