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

This is my updated procedure: CREATE PROCEDURE updateChat (IN p_chat_id

INT, IN unique_chat_name VARCHAR(255), IN name TINYTEXT, IN is_private BOOLEAN, IN description TINYTEXT)
BEGIN
DECLARE p_unique_chat_name VARCHAR(255);
DECLARE p_name TINYTEXT;
DECLARE p_is_private BOOLEAN;
DECLARE p_description TINYTEXT;

DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
ROLLBACK;
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'An errorMessage has occurred, operation rollbacked and the stored procedure was terminated';
END;

START TRANSACTION;

CREATE TABLE xxx_t(zzz json);
INSERT into xxx_t(zzz)
values(JSON_OBJECT('p_chat_id', p_chat_id, 'unique_chat_name', unique_chat_name, 'name', name, 'is_private', is_private, 'description', description));

IF unique_chat_name IS NULL THEN
SELECT unique_chat_name INTO p_unique_chat_name FROM chat_settings cs WHERE cs.chat_id = p_chat_id;
ELSE
SET p_unique_chat_name = unique_chat_name;
END IF;

IF name IS NULL THEN
SELECT name INTO p_name FROM chat_settings cs WHERE cs.chat_id = p_chat_id;
ELSE
SET p_name = name;
END IF;

IF description IS NULL THEN
INSERT into xxx_t(zzz) values(JSON_OBJECT('DESC', (select description FROM chat_settings cs WHERE cs.chat_id = p_chat_id)));
SELECT description INTO p_description FROM chat_settings cs WHERE cs.chat_id = p_chat_id;
ELSE
SET p_description = description;
END IF;

IF is_private IS NULL THEN
SELECT is_private INTO p_is_private FROM chat c WHERE c.chat_id = p_chat_id;
ELSE
SET p_is_private = is_private;
END IF;

INSERT into xxx_t(zzz)
values(JSON_OBJECT('p_chat_id', p_chat_id, 'unique_chat_name', p_unique_chat_name, 'name', p_name, 'is_private', p_is_private, 'description', p_description));

UPDATE chat_settings
SET unique_chat_name = p_unique_chat_name, name = p_name, description = p_description
WHERE chat_id = p_chat_id;

UPDATE chat
SET is_private = p_is_private
WHERE chat_id = p_chat_id;

COMMIT;
END

I was debugging and that what I have in xxx_t table:
{"name": null, "p_chat_id": 1, "is_private": 0, "description": null, "unique_chat_name": "ruslan_postoiuk_chat_2"}
{"DESC": null}
{"name": null, "p_chat_id": 1, "is_private": 0, "description": null, "unique_chat_name": "ruslan_postoiuk_chat_2"}

So this query: select description FROM chat_settings cs WHERE cs.chat_id = p_chat_id
returns NULL
but when I do it like this: select description FROM chat_settings cs WHERE cs.chat_id = 1
then it returns correct data, it means that description exists in chat_settings with chat_id = 1

And as you see here from debugging logs:
{"name": null, "p_chat_id": 1, "is_private": 0, "description": null, "unique_chat_name": "ruslan_postoiuk_chat_2"}
p_chat_id is equal 1, so what is the problem ?

1 ответов

43 просмотра

It seems like there might be an issue with how the p_chat_id variable is handled within the procedure. The debug logs indicate that description is null when retrieved using p_chat_id. This could be due to the way the variables are assigned or the logic within the IF-ELSE conditions. To troubleshoot this: 1. Check if the variable p_chat_id is being set correctly or if there's any manipulation that could affect its value before using it in the queries. 2. Ensure the flow of control within the IF-ELSE statements is correct and that the variables are set appropriately based on the conditions. One possible cause might be that the p_chat_id variable is not carrying the expected value when used within your queries. Double-check its assignment and usage within the procedure. Also, validate the flow of the IF-ELSE conditions to ensure that the correct branches are being executed. Additionally, consider printing or logging the value of p_chat_id at different stages of the procedure to verify its value and track any changes. Debugging through printing values or using temporary logging tables could help pinpoint where the issue arises and assist in resolving the problem with retrieving the description based on the p_chat_id.

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

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

#include <stdio.h> #include <stdlib.h> #include <time.h> void mass_first_generate(int mass[5][7]) {     for (int N = 0; N < 5; N++) {         for (int A = 0; A < 7; A++) {   ...
Чувак
6
https://www.linkedin.com/posts/ugama-benedicta-kelechi-codergirl-103041300_mobiledevelopment-fluttertraining-handsonlearning-activity-7263445699227254784-IdHB?utm_source=share...
CoderGirl
16
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Ну вот просто даже давайте вот как. Какой нибудь конкретный кейс, можете в пример привести, где бч работает и приносит прикладную пользу, а не просто что бы было? Не крипту.
Alexander Andreev
22
объясните пожалуйста, почему функция не работает должным образом? вроде должно брать активное окно сравнивать его размер с размером экрана, и если есть совпадение = true прове...
JF
12
Гляньте, че бывает: Сегодня по одному проекту одной вебстудии делал проект небольшой, на их хостинге. На Modx revo. В определенный момент , работая в админке, вдруг перестал р...
Artem
7
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
12
> Копаем глубже > Следующий момент был, когда я спросил его, знает ли он JavaScript. Он ответил, что его учили работать с C#. Я тоже в университете писал на C#, но даже там мн...
Oleg Volkov
4
И никого не интересует какие пакеты кто использует. ((% Заходишь на сайт симфони и видишь поддержку Украины - по законам РФ это ж экстремизм. Только никто не отказывается от с...
Am Ambrion
11
Карта сайта