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 ответов

17 просмотров

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

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 вообще знать о существовании так...

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

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

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

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
DS
8
Карта сайта