У меня есть форма, которая отображает список систем вместе с их текущим статусом. Пользователь может изменить статус, и дата этого изменения статуса сохраняется в таблице истории. Пользователь также может изменить имя сервера при изменении состояния (например, если система заменяется из-за перебоя в аренде).
В таблице истории данные хранятся в формате systemname
, поэтому, если имя системы изменяется в форме, историю также необходимо обновить (вместе со всеми историческими изменениями). На форме есть скрытое поле с именем originalsystemName
, поэтому мы знаем, совпадает ли systemname
или нет, когда форма сохраняется.
<input type='text' name='systemname'>
<input type='text' name='originalSystemName'>
<input type='text' name='status'><input type='submit' type='submit'>
Я получил следующий запрос, но получаю сообщение об ошибке (см. Ниже запроса).
update SysHistory set
SystemName = (
select distinct t.systemname
from systemInfo_tmp t, SysHistory h
where t.systemname != t.originalSystemName
)
where systemname in (
select distinct t1.originalSystemName
from systemInfo_tmp t1, SysHistory h1
where t1.systemname != t1.originalSystemName
)
Ошибка, которую я получаю:
Подзапрос возвратил более 1 значения. Это недопустимо, если подзапрос следует =,! =, <, <=,>,> = Или когда подзапрос используется в качестве выражения.