|
|
|
Прошу помощи с запросом
|
|||
|---|---|---|---|
|
#18+
Добрый день. С 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, убирал символ @. Прошу помощи как решить эту задачу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2015, 11:06 |
|
||
|
Прошу помощи с запросом
|
|||
|---|---|---|---|
|
#18+
avkm, Что это у вас функция? анонимный блок? Приведите код целиком. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2015, 11:23 |
|
||
|
Прошу помощи с запросом
|
|||
|---|---|---|---|
|
#18+
Gold_, нет, не функция. Я пишу это в тексте запроса. Вопрос в том, можно ли это исполнить в тексте запроса как в SQL ? Или надо писать функцию ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2015, 11:29 |
|
||
|
Прошу помощи с запросом
|
|||
|---|---|---|---|
|
#18+
avkm, Стоит понимать, что между проверкой (select) и какими-то действиями (insert, update) конкурирующие транзакции могли изменить вашу table ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2015, 11:39 |
|
||
|
Прошу помощи с запросом
|
|||
|---|---|---|---|
|
#18+
avkm, Это вам не MS SQL со встроенным TSQL'ем. Тут чистая, как слеза, декларативное программирование. И никаких процедурных штучек. А так читаем документацию по PostgreSQL (раздел INSERT) до полного просветления. <:o) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2015, 11:42 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=38926061&tid=1998074]: |
0ms |
get settings: |
5ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
154ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 433ms |

| 0 / 0 |
