2010-01-09 10 views
15

J'ai créé une table dans Oracle XE et j'ai un champ avec le type date. Je voudrais si possible lorsque j'insère une ligne, qu'il remplit automatiquement ce champ avec la date actuelle du système.Date de remplissage automatique dans la table oracle

J'insère les lignes à partir de l'invite SQL.

Merci

Répondre

24

Voici comment, vous devez formater votre table correctement:

create table test (first number 
        , second timestamp default systimestamp 
        , third varchar2(12)); 

Et votre valeur par défaut est toujours le temps de système actuel formaté comme horodatage.

+0

grande réponse. ty – Adnan

+3

Si la colonne a le type de données 'timestamp', pourquoi ne pas utiliser par défaut' systimestamp' plutôt que 'sysdate'? – APC

+0

Quelle est la différence? J'utilise sysdate, si vous pouvez expliquer que ce serait génial pour moi aussi bien pour Andan qui a posé la question – ant

3

changer le champ après avoir créé la table

ALTER TABLE table MODIFY time_collumn TIMESTAMP DEFAULT CURRENT_TIMESTAMP; 
1

Ou vous pouvez aussi utiliser un déclencheur:

CREATE OR REPLACE TRIGGER date_trigger 

BEFORE INSERT 

ON table_name 

REFERENCING NEW AS NEW 

FOR EACH ROW 

BEGIN 

SELECT sysdate INTO :NEW.column_name FROM dual; 

END; 
+0

Cela fonctionne mieux si vous devez vous assurer que l'horodatage n'est jamais entré manuellement. Bien que ce cas peut être rare. –

Questions connexes