Создайте следующую таблицу для справки:
create table test(
id integer generated always as identity,
content char(60),
createdBy char(30) default user,
created timestamp default current timestamp,
updatedBy char(30),
updated timestamp default null,
primary key(id)
)
Эта таблица имеет первичный ключ с автоматическим приращением (id), поле createBy, которое устанавливается на вставке, метка созданного времени, которая устанавливается на вставке, теперь нам просто нужны триггеры, чтобы последние два работали, как ожидалось (есть новый возможность устанавливать обновление при обновлении без использования триггеров, но эта функция, по-видимому, не позволяет нулевому значению показывать, что запись никогда не обновлялась, что не работает для меня).
insert into test (content) VALUES ('first thing'),
('second thing')
Чтобы увидеть, что были установлены значения по умолчанию для созданного и созданного пользователем:
select * from test
Чтобы добавить триггеры обновления:
CREATE TRIGGER mytrigger
NO CASCADE BEFORE UPDATE ON test
REFERENCING NEW AS post
FOR EACH ROW MODE DB2ROW
SET
post.updated = CURRENT TIMESTAMP,
post.updatedBy = USER
Чтобы увидеть, работает ли вышеизложенное, давайте обновим значения в «контенте»:
update co05arh/test
set content = 'first thing updated'
where id = 1
Чтобы увидеть новые значения по умолчанию
select * from co05arh/test
Затем мы должны увидеть что-то вроде
ID CONTENT CREATEDBY CREATED UPDATEDBY UPDATED
1 first thing updated KEN 2011-04-29 16:16:17.942429 KEN 2011-04-29 16:16:28.649543
2 second thing KEN 2011-04-29 16:16:18.01629 <null> <null>