2016-09-04 1 views
0

While добавить аа столбец в UPDATE_TIME используя тип данных метки времениКак обновить значение столбца в тип данных метки времени с помощью Oracle 10G

Так что мне нужно обновить значение временной метки при обновлении данных с помощью Oracle 10G в SQL Command Line

SQL> ALTER TABLE TIME_STAMPTABLE ADD UPDATE_TIME TIMESTAMP 
      DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; 

Но я получаю:

ОШИБКА в строке 1:
ORA-01735: недопустимый ALTER TABLE опция

+1

Oracle просто [не поддерживает этот синтаксис] (https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_3001.htm#i2054940). Вы должны будете использовать триггер, чтобы автоматически устанавливать значение столбца во время обновления. –

+0

Где в [Oracle 10g manual] (http://docs.oracle.com/cd/B19306_01/server.102/b14200/toc.htm) вы нашли 'on update current_timestamp'? –

+0

@ Лошадь. Я думаю, что OP подобрал синтаксис alter от DB2 и попробовал удачу в оракуле. – XING

ответ

0

Как упоминалось Алексом, oracle не поддерживает такой синтаксис, вам нужно создать триггер, показанный ниже на вашей таблице.

SQL> ALTER TABLE TIME_STAMPTABLE ADD UPDATE_TIME TIMESTAMP ; 

SQL> create or replace trigger upd_tim_stmp 
before INSERT OR UPDATE on TIME_STAMPTABLE 
for each row 
begin 
:new.UPDATE_TIME:= CURRENT_TIMESTAMP; 
end; 
/