PLSQL触发器等式检查

时间:2018-05-29 09:27:14

标签: triggers

我需要在大学的项目触发器,它在插入表格之前检查相等性。这意味着在表costumer是一个变量,它被称为用户名,在插入新的用户名之前,它应该检查用户名是否存在。我不知道我应该怎么做。

2 个答案:

答案 0 :(得分:0)

CREATE OR REPLACE TRIGGER BENUTZERNAME
BEFORE INSERT ON KUNDE. 
FOR EACH ROW
DECLARE 
    Benutzername KUNDE.Benutzername;
BEGIN
if (:new.Benutzername <> :old.Benutzername)
    Then RAISE_APPLICATION_ERROR(-20000,"Existiert bereits");
else 

*keep inserting the new name* 

  NULL;
END;

答案 1 :(得分:0)

这将暂时有效。

create or replace
TRIGGER BENUTZERNAME
BEFORE INSERT ON KUNDE
FOR EACH ROW
DECLARE 
counter number(10):=0;
BEGIN
select count(1) into counter from KUNDE where userid = :new.Benutzername;
if (counter >0)
Then RAISE_APPLICATION_ERROR(-20000,'Existiert bereits');
end if;
END;

触发器是这样做的不好方法。请尝试使用唯一约束。