ERROR: column reference "provider_id" is ambiguous LINE 17: ON CONFLICT (provider_id, order_external_id)
У вас два поля одноимённых из запроса получаются. Если я хоть что-то понимаю в этих обрывках скриншотов.
алиас/имя таблицы надо подписать перед полем по идее
Ненене. Надо на обрывках скриншотов ещё погадать :)
выключить свет, зажечь свечи и погадать? :)
INSERT INTO pay.orders(id, payment_session_id, order_external_id) VALUES (new_order_id, payment_session_id_param, order_id_param) ON CONFLICT (provider_id, order_external_id COLLATE pg_catalog."default") DO UPDATE SET status_id = order_status_id_param WHERE payment_session_id = payment_session_id_param;
excluded - ключевое
чего? нич не поняла
когда нет понимания, то вбиваете это слово в гугл и читаете, так быстрее всего
читала и пробовала. и выходит ничего поэтому пришла сюда
я конкретно про excluded имел в виду
Ничего страшного, всё получится!
Переход со скриншотов на текст -- это замечательно! Теперь ещё, как минимум, перейти с обрезка запроса на полный запрос.
и на pastebin.com
INSERT INTO pay.orders(id, payment_session_id, order_external_id) VALUES (new_order_id, payment_session_id_param, order_id_param) ON CONFLICT (provider_id, order_external_id COLLATE pg_catalog."default") DO UPDATE SET status_id = order_status_id_param WHERE payment_session_id = payment_session_id_param; помогло?
вот так сделайте SET pay.orders.status_id = excluded.order_status_id_param а COLLATE pg_catalog."default" можно убрать
сделала ему не нравиться ERROR: column reference "provider_id" is ambiguous
Нет, абсолютно. column reference is ambigous -- само по себе говорит, что у вас есть какие-то разные таблицы, а тут указана только одна. Кроме того, по смыслу payment_session_id_param, order_id_param, order_status_id_param -- не должны быть в таблицэ orders, что говорит о том, что они берутся откуда-то ещё, что не приведено в этом запросе.
ON CONFLICT (pay.orders.provider_id, pay.orders.order_external_id) а если так?
все что парам это параметры переданные в функцию.
это пробовала и раньше и об этом сразу напи сала
Теперь попробуйте orders.provider_id, orders.order_exte...
Дайте нам DDL и индекса,
я те весь запрос скинула в личку. я попробовала в онконфликт вставить просто ид.и тогда работает не работает на этом чудесном уникальном индексе -- CREATE UNIQUE INDEX uix_orders__provider_id__external_id ON pay.orders USING btree (provider_id ASC NULLS LAST, order_external_id COLLATE pg_catalog."default" ASC NULLS LAST) TABLESPACE pg_default WHERE order_external_id IS NOT NULL;
Ты женщина? Подставь excluded как alias. Ты мужчина? Ты тупой пипец, обхяснили же, подставь excluded как alias.
сча погуглю что это вообще
он блин дает ошибку!!!!! я туда ее стлкьо раз подставляю что клавиатура скоро сотрется на ctrl+v
именно поэтому много помогать вредно. человек не успевает мыслями за вами. он должен сам идти шаг за шагом. опять же клавиатуру портит 😂
Обсуждают сегодня