Apache Derby用のSQL更新トリガーステートメントを作成する必要があります。私は通常SQL ServerとT-SQLで作業しています。しかし今はダービーを使わなければなりません。残念なことに、私はDerbyの新機能であり、Derbyのマニュアルでは適切な解決策を見つけることができませんでした。CREATE TRIGGERダービーの条件付き
私の問題は、更新トリガの条件をチェックし、この条件の結果に基づいてUPDATEまたはINSERTを行うため、T-SQLではIF-ELSE-調子。 Derbyやそれ以外の方法で同等のものを教えてもらえますか?私はすでにWHEN節を考えましたが、これは間違った方向に思えます。私は今までのコードを次している
:
CREATE TRIGGER UPDATE_EVENTS
AFTER UPDATE
ON ACCIDENTS
REFERENCING OLD AS oldRow NEW AS newRow
FOR EACH ROW MODE DB2SQL
-- In the following, I would usually use an IF-ELSE Statement,
-- but I can't use this in Derby. So I tried the optional WHEN Statement,
-- but there I could not have an else "path", right?
-- This should be the If-Case
WHEN((SELECT COUNT(*) FROM VIEW_EVENTS WHERE ID_DATE = newRow.ID_DATE) > 0)
UPDATE VIEW_EVENTS
SET DETAILS = newRow.DETAILS,
PARTICIPANTS = newRow.PARTICIPANTS
WHERE ID_DATE = newRow.ID_DATE
-- And this should be the else case
WHEN((SELECT COUNT(*) FROM VIEW_EVENTS WHERE ID_DATE = newRow.ID_DATE) <= 0)
INSERT INTO VIEW_EVENTS
(ID_KEY,
ID_DATE,
DETAILS,
PARTICIPANTS
)
VALUES
(newRow.ID_KEY,
newRow.ID_DATE,
newRow.DETAILS,
newRow.PARTICIPANTS
);
この声明はあなたに私の問題を示すためだけのミニ例です。私はあなたが私を助けることを願っています:)。
敬具、
Yalcin