SQL - триггер обновления - PullRequest
       1

SQL - триггер обновления

0 голосов
/ 28 ноября 2018

У меня есть следующие таблицы:

События (IDEvent, IDBracelet, IDSensor, DateTime, TypeofEvent);Датчик (IDSensor, IDArea);Days_Areas (IDFestivalDay, IDBracelet, IDArea).

Я пытался обновить информацию о событиях, когда у браслета нет разрешения находиться в определенной области.До сих пор я делал следующее, это работает для каждого сценария, за исключением случаев, когда я вставляю правильное и неправильное событие одновременно.

update Events
set TypeofEvent='red'
from inserted i,Events e
where i.IDEvent=e.IDEvent and exits (select * from inserted i join Days_Areas a on i.IDBracelet=a.IDBracelet join
 Sensor s on s.IDSensor=i.IDSensor where a.IDArea <> s.IDArea); 

Этот триггер является последующим обновлением.Есть кто-нибудь, кто может сказать мне, где проблема?

РЕДАКТИРОВАТЬ: У меня есть еще один вопрос об этом триггере.Когда я одновременно пытаюсь вставить событие, когда один и тот же браслет проходит мимо одного датчика, где у него есть разрешение, и мимо другого, где у него нет разрешения, правильное событие все равно становится красным.

Какя могу это исправить?

1 Ответ

0 голосов
/ 28 ноября 2018

Попробуйте это:

update Events
set TypeofEvent='red'
from inserted i
INNER JOIN Events e
    ON i.IDEvent=e.IDEvent 
INNER join Days_Areas a 
    on i.IDBracelet=a.IDBracelet
INNER join Sensor s 
    on s.IDSensor=i.IDSensor 
where a.IDArea <> s.IDArea
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...