CREATE OR REPLACE TRIGGER sexo_A
Before update or insert of sexo on ator
for each row
when (
if (new.sexo = 'F')
then
return 1;
elseif (new.sexo = 'M')
then
return 1;
else
then
return 0;
end if;)
begin
RAISE_APPLICATION_ERROR('Só pode meter "F" para feminino e "M" para masculino');
end;
我想做的是在他们尝试更新或插入属性"sexo"时施加限制,并且用户只能输入字符"F"(女性(或"M"(男性(。
这不是触发器的工作。请改用检查约束:
ALTER TABLE ator ADD CONSTRAINT ckgender CHECK (sexo IN ('M', 'F'));
如果您真的想滥用触发器:
CREATE OR REPLACE TRIGGER trg_sexo
BEFORE UPDATE OR INSERT OF sexo ON ator
FOR EACH ROW
BEGIN
IF (:NEW.sexo NOT IN ('M', 'F'))
THEN
RAISE_APPLICATION_ERROR(-20000, 'Só pode meter "F" para feminino e "M" para masculino');
END IF;
END trg_sexo;
/