0
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替換爲新的date_start -1 - 確定,但在WHAT ROW中?看着你的觸發器,我想你正試圖將全新的記錄添加到同一張表中。使用觸發器這是不可能的。您能否從業務角度澄清您的要求,而不是技術要求? –
我有一個表shares_amount。它包含由公司發佈的數據共享,它的id,開始日期和結束日期等。我想要做的是創建一個觸發器,它會在該表上插入一個插入表之前更新shares_amount表,以便在公司聲明新的金額時的可用股份,當前列出的有效條目的結束日期設置爲新條目開始日期之前的一天。 – user3202908