172 похожих чатов

Подскажите, что я делаю не так. Последовательно запускаю эту команду,

все параметры одинаковые, количество CNT=1, 2 раза срабатывает, потом в остатках все время 2 и пишет, что 0 rows affected
INSERT INTO ams(
acaid, adate, amodid, acnt, apriceto
)
VALUES (
?acaid, ?adate, ?amodid, ?acnt, COALESCE((select * from getprice(?adate,?amodid)),-1)
) ON CONFLICT ON CONSTRAINT ams_idx DO UPDATE SET acnt = ?acnt + EXCLUDED.acnt
returning acnt;

14 ответов

23 просмотра

Ни схемы таблицы, ни настоящего запроса... Вам точно нужна помощь? ;)

Delphi-Photo Автор вопроса
Yaroslav Schekin
Ни схемы таблицы, ни настоящего запроса... Вам точ...

Таблица: CREATE TABLE bash.ams ( acaid INTEGER NOT NULL, adate DATE NOT NULL, amodid INTEGER NOT NULL, acnt coms.d_cnt NOT NULL, apriceto coms.d_price DEFAULT 0 NOT NULL, CONSTRAINT ams_idx PRIMARY KEY(acaid, adate, amodid) USING INDEX TABLESPACE indxs ) TABLESPACE ams; вот упрощенный запрос - суть - только количество, оно после достижения 2 не меняется. По идее, должно с каждым запросом инкрементироваться на 1 INSERT INTO ams( acaid, adate, amodid, acnt, apriceto ) VALUES ( 1, '2023-10-19', 2, 1, COALESCE((select * from getprice('2023-10-19', 2)),-1) ) ON CONFLICT ON CONSTRAINT ams_idx DO UPDATE SET acnt = 1 + EXCLUDED.acnt returning acnt;

Delphi Photo
Таблица: CREATE TABLE bash.ams ( acaid INTEGER N...

Можэт, у вас тип acnt какой-то придурочный?

Delphi-Photo Автор вопроса
Ilya Anfimov
Можэт, у вас тип acnt какой-то придурочный?

не, обычный православный numeric(15,3)

Delphi Photo
не, обычный православный numeric(15,3)

Вобще-то нифига, У тебя там coms.d_cnt

Delphi-Photo Автор вопроса
Ilya Anfimov
Вобще-то нифига, У тебя там coms.d_cnt

ну так то домен нумерика, там никакой магии, просто алиас

Delphi Photo
ну так то домен нумерика, там никакой магии, прост...

Тогда УМВР https://sqlize.online/sql/psql15/6094b21449db743936b702309a52af46/

Delphi Photo
ну так то домен нумерика, там никакой магии, прост...

Ну, не всё — тебе по смыслу надо не на 1, а на EXCLUDED.acnt увеличивать. Но никаких "на 2".

Кстати... зря Вы используете ON CONSTRAINT название — переименуете индекс, и запрос "сломается". Лучше поля указывать, чтобы constraint inference находил нужный индекс автоматически.

Delphi-Photo Автор вопроса
Yaroslav Schekin
Кстати... зря Вы используете ON CONSTRAINT названи...

а разве даст переименовать? Я так понял постгри даже превентивно не дает что-то переименовать, если есть хоть где-то сcыль на объект :)))

Delphi Photo
а разве даст переименовать? Я так понял постгри да...

Откуда PostgreSQL вообще знать о существовании такого запроса где-то в клиентском приложении, извините?!

Delphi-Photo Автор вопроса
Yaroslav Schekin
Откуда PostgreSQL вообще знать о существовании так...

ну индекс на стороне сервера, индекс просто так не переименовать

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта