2010-01-09 18 views
15

He creado una tabla en Oracle XE, y tengo un campo con fecha de tipo. Me gustaría si es posible cuando inserte una fila, que rellena automáticamente ese campo con la fecha actual del sistema.Fecha de llenado automático en la tabla de oráculo

Estoy insertando las filas desde el indicador de SQL.

Gracias

Respuesta

24

Así es como, es necesario formatear la tabla correctamente:

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

Y su valor por defecto es siempre hora actual del sistema con formato de fecha y hora.

+0

gran respuesta. ty – Adnan

+3

Si la columna tiene el tipo de datos de 'timestamp', ¿por qué no por defecto' systimestamp' en lugar de 'sysdate'? – APC

+0

¿cuál es la diferencia? Yo uso sysdate, si puedes explicar que sería genial para mí también para Andan que hizo la pregunta – ant

3

cambio el campo después de la creación de la tabla

ALTER TABLE table MODIFY time_collumn TIMESTAMP DEFAULT CURRENT_TIMESTAMP; 
1

O también se podría utilizar un disparador:

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

Esto funciona mejor si necesita asegurarse de que la marca de tiempo nunca se ingrese manualmente. Aunque ese caso puede ser raro. –

Cuestiones relacionadas