PL / SQL l oop для удаления записей - PullRequest
0 голосов
/ 23 января 2020

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

У меня есть таблица User_accounts с двумя полями: UserID, Value. Есть 500 тысяч записей. Идентификатор пользователя уникален для всех записей.

У меня есть временная таблица с теми же 2 полями и примерно 30 тысячами записей. Кроме того, нет повторяющихся идентификаторов пользователей.

Для каждой записи во временной таблице я хочу удалить соответствующую запись из User_accounts.

Я "мог" выполнить простой оператор удаления 30k раз. Это заняло бы целую вечность, чтобы бежать. Должен быть действительно простой запрос, который бы go проходил через временную таблицу. Ты мне поможешь?

1 Ответ

0 голосов
/ 24 января 2020

Ваш оператор удаления может удалить все выбранные идентификаторы в одном go, учитывая подходящее предложение where, которое может ссылаться на другую таблицу, например:

delete user_accounts u
where exists (
  select null
  from   temp_table t
  where  t.userid = u.userid
  );
...