我需要在大学的项目触发器,它在插入表格之前检查相等性。这意味着在表costumer是一个变量,它被称为用户名,在插入新的用户名之前,它应该检查用户名是否存在。我不知道我应该怎么做。
答案 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;
触发器是这样做的不好方法。请尝试使用唯一约束。