Я пишу триггер, и у меня возникла проблема. Триггер выполняется и компилируется без ошибок, но по некоторым причинам он не выполняет работу, которую я хочу. Если бы кто-то мог мне помочь.
Вот вопрос:
Запишите триггер, который будет выполнен при вставке, обновлении НЕДВИЖИМОСТИ. Каждое введенное свойство проверяется на соответствие другим свойствам: агент (ы), владелец (и), адрес, если вы его найдете, то обновите статус свойства на «Двойной» как дубликат.
Я вставляю те же данные, и они позволяют мне это делать, но обычно это не так!
Вот мои таблицы:
create table Properties(
idProperties number(10) NOT NULL,
Type varchar2(45) NOT NULL,
SquareMeters varchar2(10) NOT NULL,
Rooms number(10) NOT NULL,
ConstructionDate date NOT NULL,
FloorLocation varchar(20),
Price number(10) NOT NULL,
CityView varchar2(20),
DateOfInsert date NOT NULL,
DateOfExiration date NOT NULL,
Address_FK number(20),
Service_FK number(20),
Ownership_FK number(20),
Status_FK number(20),
PropertyService_FK number(20))
create table Address(
idAddress number(10) NOT NULL,
address_name varchar2(20),
City_FK number(20))
create table OwnerAgent(
idOwnerAgent number(10) NOT NULL,
Name varchar2(50) NOT NULL,
LastName varchar2(50) NOT NULL,
PhoneNr number(20),
Email varchar2(20),
Sex varchar2(10),
Profesion varchar2(20),
Birthdate date,
LastLogInDate date NOT NULL,
Status varchar2(20),
Address_FK number(20))
create table Ownership(
idOwnership number(10) NOT NULL,
PercentageOwed number(10)NOT NULL,
RequiredPercentage number(10) NOT NULL,
OwnerAgent_FK number(20))
Вот мой триггер:
CREATE OR REPLACE TRIGGER Check_Duplicate
before insert or update on properties
FOR each ROW
declare
v_dup number;
begin
select count(idProperties) INTO v_dup from properties where Address_FK=:NEW.Address_FK and
Ownership_FK=:NEW.Ownership_FK;
if v_dup > 0 then
Raise_Application_Error (-20100, 'This property already exists. The insert is cancelled.');
end if;
end;
Спасибо.