MySQL має вбудовану властивість для автоматичного оновлення дати при кожній зміні рядка вже існуючої таблиці, яка має вигляд "on update current_timestamp".
Створення таблиці в MySQL буде виглядати приблизно так:
create table p ( id int, a varchar(10), d timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, constraint p_pk primary key (id) );Для того щоб зробити теж саме в Oracle потрібно створити триггер, який буде виконувати функцію оновлення дати і часу.
Наприклад:
-- створення таблиці create table p ( id number, a varchar2(10), d date default sysdate, constraint p_pk primary key (id) ); -- заповнення таблиці insert into p(id,a) values(1,'test'); -- створення тригеру CREATE OR REPLACE TRIGGER p_d_trig BEFORE UPDATE ON p FOR EACH ROW BEGIN -- вводим умову, щоб можна було оновлювати дату через update -- якщо її не буде,то виконання, наприклад, -- update p set d=to_date('2010-02-03 23:12:10','yyyy-mm-dd hh24:mi:ss') where id=1 -- призведе не до потрібної нам дати, а до фактичної дати зміни IF NOT UPDATING ('D') then select sysdate into :new.d from dual; END IF; END p_d_trig;
Велика подяка за допомогу ToshaCh.
Немає коментарів:
Дописати коментар