Я перехожу базу данных из MySQL в Postgres SQL. Запрос выбора, который работал в MySQL, работает в Postgres, но аналогичного запроса на удаление нет.
У меня есть две таблицы данных, в которых перечислены некоторые резервные файлы. Существующие данные (ed) и новые данные (nd). Этот синтаксис выберет существующие данные, которые могут указывать, где находится файл в существующей таблице данных, сопоставляя его с одинаковым именем и пустым файлом, но не указав, где он находится в новых данных:
SELECT ed.id, ed.file_name, ed.cd_name, ed.path, nd.cd_name
FROM tv_episodes AS ed
LEFT OUTER JOIN data AS nd ON
ed.file_name = nd.file_name AND
ed.path = nd.path
WHERE ed.cd_name = 'MediaLibraryDrive' AND nd.cd_name IS NULL;
Я хочу запустить запрос на удаление с помощью этого синтаксиса:
DELETE ed
FROM tv_episodes AS ed
LEFT OUTER JOIN data AS nd ON
ed.file_name = nd.file_name AND
ed.path = nd.path
WHERE ed.cd_name = 'MediaLibraryDrive' AND nd.cd_name IS NULL;
Я пробовал DELETE ed
и DELETE ed.*
, оба из которых отображают syntax error at or near "ed"
. Подобные ошибки, если я пытаюсь без псевдонима ed
. Если я попытаюсь выполнить
DELETE FROM tv_episodes AS ed
LEFT JOIN data AS nd.....
Postgres отправляет обратно syntax error at or near "LEFT"
.
Я нахожусь в тупике и не могу много найти в запросах на удаление, используя объединения, специфичные для psql.