Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Oracle automatycznie dodaje bieżącą datę

Zakładając, że

  1. Twoja kolumna w rzeczywistości nie ma nazwy date ponieważ jest to słowo zastrzeżone
  2. Twoja kolumna jest w rzeczywistości zdefiniowana jako date zamiast jako number
  3. Chcesz wypełnić kolumnę podczas wstawiania nowego wiersza

możesz zdefiniować wartość domyślną dla kolumny.

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

Jeśli chcesz zmodyfikować dt kolumna podczas UPDATE wiersz, potrzebujesz wyzwalacza

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

Wyzwalacz zastąpi każdą wartość przekazaną jako część INSERT lub UPDATE instrukcja dla dt kolumna. Domyślna wartość nie.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak napisać instrukcję SQL z cudzysłowami?

  2. 2 sposoby łączenia ciągu i liczby w Oracle

  3. Analiza ciśnienia pamięci Stan ryzyka

  4. SQL:AVG z wartościami NULL

  5. Jak dodać spację przed numerem, jeśli jest to jedna cyfra?