У меня неправильные записи в числовом столбце таблицы истории, поэтому мне нужно взять значение числового столбца из таблицы motorvehicle и обновить в таблице истории. Следующий запрос, который я использую для обновления,
UPDATE history
SET history.number = (SELECT motorvehicle.number
FROM motorvehicle
WHERE motorvehicle.FK_ID = history.FK_ID
AND history.DATE = '2018-05-08'
AND history.state = 35 fetch first 1000 rows only)
Когда я запускаю этот запрос, я получаю сообщение об ошибке типа «[21000] [IBM] [DB2 / AIX64] SQL0811N: Результат скалярной полной выборки, оператора SELECT INTO или оператора VALUES INTO состоит из более чем одного строка».
Если я удаляю выборку первых 1000 строк только из запроса, это не дает никакой синтаксической ошибки, но происходит сбой из-за переполнения журнала транзакций.
Моя БД - Db2-LUW V10.5 и работает на сервере Linux.
Может кто-нибудь помочь мне решить эту проблему? Если приведенный выше запрос не является правильным способом обновления, можете ли вы предложить новый запрос, основанный на моей ситуации?