|
Помогите найти ошибку в запросе update
|
|||
---|---|---|---|
#18+
Что-то я не понимаю, что не нравится PostreSQL. Гугл тоже ничего полезного не говорит. Версия: PostgreSQL 9.6.13 Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
2 первых подзапроса в функции отрабатывают нормально. На последнем ругается: "ERROR: column "t" of relation "temp_folder_tag" does not exist LINE 2: t.folder_tag_id = f.folder_tag_id ^ QUERY: UPDATE temp_folder_tag as t SET t.folder_tag_id = f.folder_tag_id FROM spr_folder_tags as f WHERE t.folder_tag_value = f.folder_tag_value". Не понимаю, почему алиас "t" считается колонкой? Пробовал другой алиас, та же фигня. --- Проходя мимо разложенных граблей, ты теряешь драгоценный опыт. (с) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2019, 21:37 |
|
Помогите найти ошибку в запросе update
|
|||
---|---|---|---|
#18+
Megabyte, потому что таков синтаксис update. Алиасу там не место. set column_name - строго имя колонки обновляемой таблицы. Здесь нет и не может быть неоднозначности, update в postgresql обновляет строки только одной таблицы. Синтаксис set column_name.attribute = - это про композитные типы данные. При этом перед точкой стоит именно имя поля таблицы, в котором сохранены данные композитного типа. Поэтому вы и получаете ошибку о том, что поля такого не существует в этой таблице. https://www.postgresql.org/docs/current/sql-update.html Do not include the table's name in the specification of a target column — for example, UPDATE table_name SET table_name.col = 1 is invalid. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2019, 21:44 |
|
Помогите найти ошибку в запросе update
|
|||
---|---|---|---|
#18+
MelkijMegabyte, потому что таков синтаксис update. Алиасу там не место. set column_name - строго имя колонки обновляемой таблицы. Здесь нет и не может быть неоднозначности, update в postgresql обновляет строки только одной таблицы. Синтаксис set column_name.attribute = - это про композитные типы данные. При этом перед точкой стоит именно имя поля таблицы, в котором сохранены данные композитного типа. Поэтому вы и получаете ошибку о том, что поля такого не существует в этой таблице. https://www.postgresql.org/docs/current/sql-update.html Do not include the table's name in the specification of a target column — for example, UPDATE table_name SET table_name.col = 1 is invalid. Спасибо за пояснение. Разобрался. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2019, 21:49 |
|
|
start [/forum/topic.php?fid=53&fpage=40&tid=1995191]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
33ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 138ms |
0 / 0 |