トリガーを使用して、属性に非 null 制約を実装したいと考えています。これが私のコードです:
create table mytable2(id int);
create or replace function p_fn() returns trigger as $prim_key$
begin
if (tg_op='insert') then
if (id is null) then
raise notice 'ID cannot be null';
return null;
end if;
return new;
end if;
end;
$prim_key$ language plpgsql;
create trigger prim_key
before insert on mytable2
for each row execute procedure p_fn();
しかし、null 値を挿入しようとすると、「コントロールが RETURN なしでトリガー プロシージャの最後に到達しました」というエラーが表示されます。内部IFに「return new」ステートメントを配置しようとしましたが、それでも同じエラーが発生しました。私は何を間違っていますか?