Я бы хотел выполнить заявление upsert sql в БД тараканов.
Я хотел бы вставить строку в таблицу, если конкретный id не существует в таблице, и обновить столбец name , если в таблице существует идентификатор с данным значением.
Определение таблицы:
CREATE TABLE IF NOT EXISTS programs_tiers (
id STRING PRIMARY KEY,
program_id STRING NOT NULL REFERENCES programs (id),
name STRING,
created TIMESTAMPTZ DEFAULT current_timestamp(),
UNIQUE(program_id, name)
);
Вот мой SQL-оператор, использующий knex .
const response = await this.knex.raw('INSERT INTO programs_tiers (id,name) values(?,?) ON CONFLICT(id) DO UPDATE SET name = excluded.name WHERE program_id = ? AND id = ?',[tierId, tierName, programId, tierId]);
Я получаю следующую ошибку:
ошибка: ссылка на столбец "id" неоднозначна (кандидаты: excid.id,
programs_tiers.id).
Как я могу решить это?