Запрос UPDATE, LIMIT и RETURNING

Я работаю над базой данных LIVE и из-за текущих обстоятельств, не могу проверить запрос, не помещая его в живое ... плохо знаю ...

В основном это простое обновление, но я хочу, чтобы он обновлял последнюю строку соответствий:

UPDATE person SET name = 'bob' WHERE cousin = 'jane' ORDER BY id DESC
LIMIT 1 RETURNING id

В принципе, у многих «людей» может быть джейн как двоюродный брат, я только хочу, чтобы имя последнего человека боб. Я просто не уверен в предложениях LIMIT и RETURNING. Правильно ли они? или вы можете использовать LIMIT и RETURNING вместе?

0
nl ja de
Даже если вам нужно протестировать на производстве, вы можете обернуть свои эксперименты в BEGIN ... ROLLBACK .
добавлено автор Peter Eisentraut, источник
Укажите «самый последний человек»,
добавлено автор wildplasser, источник

1 ответы

UPDATE person
SET name = 'bob'
WHERE id = (
    select max(id)
    from person
    where cousin = 'jane'
    )
RETURNING id;

Вы можете проверить его, начав транзакцию:

begin;

UPDATE person
SET name = 'bob'
WHERE id = (
    select max(id)
    from person
    where cousin = 'jane'
    )
RETURNING id;

Теперь выберите результат:

select *
from person
where id = id_returned_in_the_above_query;

Если это правильно, то выполните:

commit;

Повторный откат:

rollback;
2
добавлено
pgsql – PostgreSQL
pgsql – PostgreSQL
2 429 участник(ов)

Чат про PostgreSQL

DBA - русскоговорящее сообщество
DBA - русскоговорящее сообщество
1 345 участник(ов)

Общаемся и обсуждаем темы, посвященные DBA, PostgreSQL, Redis, MongoDB, MySQL, neo4j, riak и т.д. См. также: @devops_ru, @kubernetes_ru, @docker_ru, @nodejs_ru Рекомендуем сразу отключить уведомления, чтобы пребывание здесь было полезным и комфортным.

SqlCom.ru - Стиль жизни SQL
SqlCom.ru - Стиль жизни SQL
908 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только MS SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz). Предложения в @sql_ninja

SQL_Ninja
SQL_Ninja
340 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz)