sql >> Database teknologi >  >> RDS >> Oracle

Oracle automatisk tilføje aktuel dato

Forudsat at

  1. Din kolonne hedder faktisk ikke date da det er et reserveret ord
  2. Din kolonne er faktisk defineret som en date snarere end som et number
  3. Du vil udfylde kolonnen, når du indsætter en ny række

du kan definere en standardværdi for kolonnen.

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

Hvis du ønsker at ændre dt kolonne, når du UPDATE rækken, skal du bruge en trigger

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

En trigger vil tilsidesætte enhver værdi, der sendes ind som en del af INSERT eller UPDATE sætning for dt kolonne. En standardværdi vil ikke.




  1. Sådan rettes ERROR 1130 (HY000):Host har ikke tilladelse til at oprette forbindelse til denne MySQL-server

  2. JDBC batch operationsforståelse

  3. QMYSQL driver indlæsningsfejl

  4. Der blev ikke fundet nogen passende driver til jdbc i Spark