sql >> Databáze >  >> RDS >> Oracle

Oracle automaticky přidá aktuální datum

Za předpokladu, že

  1. Váš sloupec se ve skutečnosti nejmenuje date protože to je vyhrazené slovo
  2. Váš sloupec je ve skutečnosti definován jako date spíše než jako number
  3. Při vkládání nového řádku chcete sloupec vyplnit

můžete definovat výchozí hodnotu pro sloupec.

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

Pokud chcete upravit dt při UPDATE řádku, budete potřebovat trigger

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

Spouštěč přepíše jakoukoli hodnotu zadanou jako součást INSERT nebo UPDATE příkaz pro dt sloupec. Výchozí hodnota nebude.




  1. Jak vypočítat míru retence v SQL?

  2. .Net - Vytváření sady záznamů na vyžádání namísto stahování všeho do paměti najednou

  3. Hash MD5 MySQL je nesprávný

  4. findAll() z Sequelize nezíská