Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle автоматично добавя текуща дата

Ако приемем, че

  1. Вашата колона всъщност не е с име date тъй като това е запазена дума
  2. Вашата колона всъщност е дефинирана като date а не като number
  3. Искате да попълните колоната, когато вмъкнете нов ред

можете да дефинирате стойност по подразбиране за колоната.

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

Ако искате да промените dt колона, когато UPDATE реда, ще ви трябва тригер

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

Тригерът ще замени всяка стойност, подадена като част от INSERT или UPDATE израз за dt колона. Стойност по подразбиране няма.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да разрешите липсващия израз ORA-00936

  2. SQL:AVG с NULL стойности

  3. къде отива изходът system.out.println в класа на Oracle Java

  4. Как да напиша параметризирана заявка за вмъкване на оракул?

  5. Извличане на стойности от 3 таблици