-3

次のようなトリガーを実装する必要があります。

7) トリガーを使用して、ストア情報テーブルから削除されているストアからすべてのレンタル コピーを中央ストアに転送する方法についての DDL を示します。
8) 中央ストアが削除されないようにするために、このトリガーを拡張する方法を示します。データベースから

これまでのところ、私はこれを行ってきました:

CREATE OR REPLACE TRIGGER ストア
BEFORE DELETE ON ストア
FOR EACH ROW
BEGIN
IF DELETING WHERE cvr = 123456789 THEN

Raise_Application_Error (
num => -20050,
msg => 'メイン ストアを削除できません。');
END IF;
IF DELETING THEN
UPDATE store_id=123456789 ON ムービー WHERE isActive = 0
END IF;
終わり;

本店は cvr と書かれているのですが、コンパイルエラーになってしまいます。何か助けはありますか?前もって感謝します。

4

1 に答える 1

0

コードに 2 つのエラーがあります。

  1. 「DELETING WHERE」式はありません。次のような 2 つのブール例外を使用する必要があります。

    IF DELETING AND :old.cvr = 123456789 THEN...

:old.cvr削除されたレコードの cvr 列の値を参照します

  1. UPDATE句の構文は

    UPDATE table_name SET column_name1 = value1, column_name1 = value2 WHERE where_clause;

あなたの場合、おそらく次のように考えてください:

UPDATE movies 
    set store_id = 123456789
  WHERE store_id = :old.cvr

たぶん、必要な機能がわからない

于 2015-03-18T15:29:34.477 に答える