Как устранить неоднозначную ошибку ссылки на столбец в массовой рассылке для postgresql? - PullRequest
0 голосов
/ 25 июня 2019

Для следующего кода я пытаюсь выполнить массовое преобразование в таблицу.Таблица называется jobstep_to_step_relationships.Если в таблице уже существует столбец первичного ключа "job_base_step_id", я хочу, чтобы алгоритм обновил его.

create table jobstep_to_step_relationships

    (
        job_base_step_id uuid default uuid_generate_v4() not null
            constraint jobstep_to_step_relationships_pkey
                primary key,
        step_id uuid not null,
        parent_job_base_step_id uuid not null,
        parent_step_id uuid not null,
        job_id uuid not null,
        order_number integer not null,
        is_group boolean not null,
        created_at bigint not null,
        updated_at bigint not null
    );




INSERT INTO jobstep_to_step_relationships
(job_base_step_id, step_id, parent_job_base_step_id, parent_step_id, job_id, order_number,
 is_group, created_at, updated_at)
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9),
       ($1, $2, $3, $4, $5, $6, $7, $8, $9)
ON CONFLICT (job_base_step_id)
    DO UPDATE SET job_base_step_id        = EXCLUDED.job_base_step_id,
                  step_id                 = EXCLUDED.step_id,
                  parent_job_base_step_id = EXCLUDED.parent_job_base_step_id,
                  parent_step_id          = EXCLUDED.parent_step_id,
                  job_id                  = EXCLUDED.job_id,
                  order_number            = EXCLUDED.order_number,
                  is_group                = EXCLUDED.is_group,
                  created_at              = EXCLUDED.created_at,
                  updated_at              = EXCLUDED.updated_at
WHERE EXCLUDED.job_base_step_id = job_base_step_id
  AND EXCLUDED.step_id = step_id

Однако для следующего размещенного кода я получаю эту ошибку:

[2019-06-25 13:17:47] [42702] ERROR: column reference "job_base_step_id" is ambiguous

Не уверен, что я неверно истолковываю из документации.Может кто-то указать, что не так?

1 Ответ

1 голос
/ 25 июня 2019

Укажите имя таблицы, чтобы исправить неоднозначность:

WHERE EXCLUDED.job_base_step_id = jobstep_to_step_relationships.job_base_step_id
  AND EXCLUDED.step_id = jobstep_to_step_relationships.step_id
...