postgreSQLのテーブルから削除する前に特定のカラムの値をチェックする方法を教えてもらえますか?削除前のカラム値をチェックするpostgreSQL
私の現在のコード:
CREATE OR REPLACE FUNCTION f_tr_table_row_prohibit_delete() RETURNS TRIGGER AS
$$
BEGIN
IF (OLD.table_state_code=0) THEN
DELETE FROM mytable WHERE table_code=OLD.table_code;
ELSE
RAISE EXCEPTION 'The deletion of a row is allowed only when table state code is 0!';
END IF;
END;
$$
CREATE TRIGGER tr_table_row_prohibit_delete
BEFORE DELETE ON mytable
FOR EACH ROW
EXECUTE PROCEDURE f_tr_laua_rida_prohibit_delete();
LANGUAGE plpgsql SECURITY DEFINER STABLE
SET search_path = public, pg_temp;
私は列table_codeとtable_state_codeがあるmytableという名前のテーブルを持っています。 mytableから削除する前に、table_state_codeが0であるかどうかを確認したい場合は、それ以外の場合は削除を許可しないでください。
table_state_codeが0ではなく、それが表示されているときに、私の現在のコードで正しく例外が発生します。 エラー:行を削除する代わりに、不揮発性の関数でDELETEを使用できません。
ありがとうございます。