触发器将新条目与 sql 中列中的先前条目进行比较
trigger to compare a new entry with previous entries from a column in sql
我正在尝试在 apex oracle 上为学校项目构建应用程序,但首先我需要一些功能。其中之一是触发器。我想将新条目与 table 列中的先前条目进行比较。如果条目在那里,将显示错误。这是我到目前为止得到的:
create or replace TRIGGER client_check
BEFORE INSERT
ON ORDERS
for each row
DECLARE
new_client number;
BEGIN
new_client :=0;
select CLIENT_ID into new_client from ORDERS where CLIENT_ID = :new.CLIENT_ID;
if new_client (condition to check if its already there)
Raise_Application_Error(-20000, 'Client already ordered!');
end if;
END;
不知道怎么写。谢谢。
看来你只需要一个计数函数来统计订单数 -
create or replace TRIGGER client_check
BEFORE INSERT
ON ORDERS
for each row
DECLARE
new_client number := 0;
BEGIN
select COUNT(CLIENT_ID)
into new_client
from ORDERS
where CLIENT_ID = :new.CLIENT_ID;
if new_client > 0
Raise_Application_Error(-20000, 'Client already ordered!');
end if;
END;
我正在尝试在 apex oracle 上为学校项目构建应用程序,但首先我需要一些功能。其中之一是触发器。我想将新条目与 table 列中的先前条目进行比较。如果条目在那里,将显示错误。这是我到目前为止得到的:
create or replace TRIGGER client_check
BEFORE INSERT
ON ORDERS
for each row
DECLARE
new_client number;
BEGIN
new_client :=0;
select CLIENT_ID into new_client from ORDERS where CLIENT_ID = :new.CLIENT_ID;
if new_client (condition to check if its already there)
Raise_Application_Error(-20000, 'Client already ordered!');
end if;
END;
不知道怎么写。谢谢。
看来你只需要一个计数函数来统计订单数 -
create or replace TRIGGER client_check
BEFORE INSERT
ON ORDERS
for each row
DECLARE
new_client number := 0;
BEGIN
select COUNT(CLIENT_ID)
into new_client
from ORDERS
where CLIENT_ID = :new.CLIENT_ID;
if new_client > 0
Raise_Application_Error(-20000, 'Client already ordered!');
end if;
END;