Обновление записей в Postgres с помощью предложения FROM - PullRequest
0 голосов
/ 03 мая 2010

Я изменяю свою схему БД и перемещаю столбец «место» из old_table в new_table. Сначала я добавил колонку 'seat' в new_table. Сейчас я пытаюсь заполнить столбец значениями из old_table.

UPDATE new_table
SET seat = seat
FROM old_table
WHERE old_table.id = new_table.ot_id;

Возвращается ОШИБКА: ссылка на столбец "место" является неоднозначной.

UPDATE new_table nt
SET nt.seat = ot.seat
FROM old_table ot
WHERE ot.id = nt.ot_id;

Возвращает ОШИБКУ: столбец "nt" отношения "new_table" не существует

Идеи

Ответы [ 3 ]

3 голосов
/ 03 мая 2010
UPDATE new_table
SET seat = old_table.seat
FROM old_table
WHERE old_table.id = new_table.ot_id;
1 голос
/ 03 мая 2010

IIRC таблица, подлежащая обновлению, не должна быть псевдонимом. Вы пробовали это?

UPDATE new_table
SET seat = ot.seat
FROM old_table ot
WHERE ot.id = ot_id;
0 голосов
/ 03 мая 2010

Вы должны просто упомянуть seat, например

UPDATE new_table nt
SET seat = ot.seat
FROM old_table ot
WHERE ot.id = nt.ot_id;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...