powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Прошу помощи с запросом
7 сообщений из 7, страница 1 из 1
Прошу помощи с запросом
    #38926021
avkm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

С Postgres работаю совсем недавно т.к. возникла необходимость. Ранее работал только с SQL.

Задача классическая - необходимо узнать есть ли запись с первичным ключом в таблице, если есть - сделать update иначе - сделать insert.
1. Если делаю так(пример с сайта):

select * from table where rec_id = record_id;
if NOT FOUND then
--записей нет
insert... ;
else
--записи есть
update... ;
end if;

Ругается на переменную NOT FOUND.
2. Если делаю так

SET @Q = 0;

SELECT COUNT(*) INTO @Q
FROM tasks WHERE PK = 'блабла';
IF @QUANT = 0 then
INSERT INTO
ELSE
UPDATE
END IF;

Ругается на саму переменную Q. Возможно, дело в том, что в Postgres нельзя объявлять переменные внутри запроса.
Писал вместо SET - DECLARE, убирал символ @.
Прошу помощи как решить эту задачу.
...
Рейтинг: 0 / 0
Прошу помощи с запросом
    #38926052
Gold_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
avkm,

Что это у вас функция? анонимный блок? Приведите код целиком.
...
Рейтинг: 0 / 0
Прошу помощи с запросом
    #38926061
avkm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gold_,

нет, не функция. Я пишу это в тексте запроса.
Вопрос в том, можно ли это исполнить в тексте запроса как в SQL ?
Или надо писать функцию ?
...
Рейтинг: 0 / 0
Прошу помощи с запросом
    #38926070
Gold_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
avkm,

тогда в анонимном блоке
...
Рейтинг: 0 / 0
Прошу помощи с запросом
    #38926078
Gold_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
avkm,

Стоит понимать, что между проверкой (select) и какими-то действиями (insert, update) конкурирующие транзакции могли изменить вашу table
...
Рейтинг: 0 / 0
Прошу помощи с запросом
    #38926087
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avkm,
Это вам не MS SQL со встроенным TSQL'ем.
Тут чистая, как слеза, декларативное программирование.
И никаких процедурных штучек.

А так читаем документацию по PostgreSQL (раздел INSERT) до полного просветления.

<:o)
...
Рейтинг: 0 / 0
Прошу помощи с запросом
    #38926090
avkm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gold_,

понял, спасибо!
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Прошу помощи с запросом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]