Я работаю с репликой только для чтения PostgreSQL 9.6, в которой я не могу создавать функции или временные таблицы.
В одной таблице есть список файлов, которые должны быть на диске.А в каталоге на совершенно другом сервисе есть сами файлы с именем file_id.
Column | Type
-----------+-----------
file_id | integer
name | text
И на диске на другой машине
ls -rt /var/www/dbfiles
519288 519290 519297 519298 519231 ...
Там около 5000 записей и около5000 файлов, но у меня есть основания полагать, что они не совпадают.Поэтому я пытаюсь найти способ выполнить запрос, который покажет, какие записи в БД не имеют файла на диске, а какие файлы на диске не имеют записи в БД.Пока это единовременно, так что я не возражаю против ручной обработки списка каталогов.
Если бы я мог импортировать список каталогов в таблицу, я бы просто сделал внешнее соединение и посмотрелдля нулей с каждой стороны.Есть ли способ, которым я могу внешнее объединение с подзапросом, полным идентификаторов?Что-то вроде
SELECT f.name, dir_listing.id FROM files f
FULL OUTER JOIN (SELECT (519288, 519290, 519297, 519298, 519231...) AS id) AS dir_listing
, где результат выглядит как
name | id
---------------+---------
myfile.txt | 519288
otherfile.txt |
| 519290
(и т. Д.)
Спасите меня от CSV и VLOOKUP!