如何在 PL/SQL 中创建一个触发器,该触发器可以创建限制,以便它们只能输入 1 个字符?


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;
/

最新更新