CREATE OR REPLACE TRIGGER shares_to_amount
AFTER INSERT OR UPDATE OF issued ON shares_amount
FOR EACH ROW
BEGIN
INSERT INTO shares_amount(
share_issue_id,
share_id,
issued,
date_start,
date_end
) VALUES (
:OLD.share_issue_id,
:OLD.share_id,
:NEW.issued,
:NEW.date_start,
:((NEW.date_start)-1).date_end
);
END;
Я хочу, чтобы изменить date_end
к date_new date -1
, когда новое значение доли выдается в «выдан». Дата начала может быть сегодняшней датой, но дата окончания должна будет отображаться за день до этого.SQL Oracle Триггер изменить дату
Я просто хочу создать триггер, который заменит date_end на New date_start -1, когда новое значение будет выпущено для выпуска. – user3202908
>> заменит date_end на New date_start -1 - ОК, но в WHAT ROW? Глядя на триггер, я думаю, вы пытаетесь добавить новый рекорд в ту же таблицу. Это невозможно с помощью триггера. Можете ли вы прояснить свои требования с деловой точки зрения, а не технические? –
У меня есть таблица share_amount. Он содержит долю данных, выпущенную компанией, ее идентификатор, дату начала и окончания и т. Д. Что я хочу сделать, так это создать триггер, который будет обновлять таблицу share_amount, прежде чем появится вставка в этой таблице, чтобы когда компания объявляет новую сумму доступных акций, действующая в настоящий момент действительная запись имеет дату окончания, установленную за день до даты начала новой записи. – user3202908