2010-01-09 3 views
15

Я создал таблицу в oracle XE, и у меня есть поле с датой типа. Я хотел бы, если это возможно, когда я вставляю строку, что она автоматически заполняет это поле текущей датой из системы.Автоматически заполнять дату в таблице оракулов

Я вставляю строки из запроса SQL.

Благодаря

ответ

24

Вот как, вам нужно отформатировать таблицу правильно:

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

И ваше значение по умолчанию всегда текущее системное время в формате временной метки.

+0

большой ответ. ty – Adnan

+3

Если столбец имеет тип данных 'timestamp', почему не по умолчанию' systimestamp', а не 'sysdate'? – APC

+0

В чем разница? Я использую sysdate, если вы можете объяснить, что это было бы здорово и для Андана, который задал вопрос – ant

3

изменить поле после создания таблицы

ALTER TABLE table MODIFY time_collumn TIMESTAMP DEFAULT CURRENT_TIMESTAMP; 
1

Или вы можете также использовать триггер:

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

Это работает лучше, если вам нужно убедиться, что временная метка никогда не вводится вручную. Хотя этот случай может быть редок. –

Смежные вопросы