powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите с ошибкой 1449
6 сообщений из 6, страница 1 из 1
Помогите с ошибкой 1449
    #39779284
Yarik1986
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня есть БД с разными параметрами. Основные из них это показатели с датчиков каждые час, 2 часа, 8 часов.
Сама бд работает в нормальном состоянии и я каждый час, два или 8 часов заношу данные позже их могу просмотреть запросом.

Так же есть еще одна БД. В ней имеется внешняя процедура.
Когда я ее вызываю и указываю параметры в диапазоне:

CALL Crystal2MAS_N('2018.12.09',30,'1408,1508,1477,146,1478,1189,2,3,1428')

То получаю ошибку:

The user specified as a definer (''@'') does not exist

Перед этим я сделал бекап всех бд через MySQL Administrator. Не могу теперь понять что произошло?

Код процедуры:

CREATE DEFINER=``@`` PROCEDURE `Crystal2MAS_N`(StartDT DATE, depth INT, params VARCHAR(512))
BEGIN
DECLARE i TINYINT DEFAULT 1;
DECLARE CampTName TINYTEXT;
DECLARE done INTEGER DEFAULT 0;
DECLARE CampCursor CURSOR FOR
SELECT CONCAT ('VAL_',`YEAR`) AS t_name FROM `crystal_olkh`.`campaign`
WHERE ((Date3 >= SUBDATE(StartDT, INTERVAL depth DAY) OR Date3 IS NULL) AND Date2 <= StartDT) AND CT=0 ORDER BY `YEAR`;

DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done=1;


OPEN CampCursor;
FETCH CampCursor INTO CampTName;
SET @qText := CONCAT ('CREATE TEMPORARY TABLE AllData SELECT PID,CID,H,val FROM `crystal_olkh`.`',CampTName, '` WHERE PID IN (', params, ')');

WHILE done = 0 DO
FETCH CampCursor INTO CampTName;
IF done = 0 THEN
SET @qText := CONCAT (@qText,' UNION SELECT PID,CID,H,val FROM `crystal_olkh`.`', CampTName, '` WHERE PID IN (', params, ')');
END IF;
END WHILE;

SET @qText := CONCAT (@qText, ';');
CLOSE CampCursor;

DROP TABLE IF EXISTS AllData;
PREPARE stmt FROM @qText;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

SET i := 1;
SET @qtext := 'SELECT ADDDATE(DT, INTERVAL H+8*60+59 MINUTE) AS tstamp,
SUM(IF(PID=';

WHILE SPLIT_STRING(params,',',i) != '' DO
SET @qtext := CONCAT (@qtext, SPLIT_STRING(params,',',i),
',VAL,NULL)) AS val_',SPLIT_STRING(params,',',i));
SET i := i + 1;
IF SPLIT_STRING(params,',',i) != '' THEN
SET @qtext := CONCAT (@qtext,',
SUM(IF( PID=');
END IF;
END WHILE;

SET @qtext := CONCAT (@qtext,'
FROM AllData
LEFT JOIN `crystal_olkh`.`calendar` ON IdCal = CID
WHERE DT>=SUBDATE(''',StartDT,''', INTERVAL ',depth,' DAY) AND DT<=''',StartDT,'''
GROUP BY CID,H;');

PREPARE stmt FROM @qText;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

DROP TABLE AllData;

END
...
Рейтинг: 0 / 0
Помогите с ошибкой 1449
    #39779292
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yarik1986DEFINER=``@``это как?
...
Рейтинг: 0 / 0
Помогите с ошибкой 1449
    #39779298
Yarik1986
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я так подозреваю CREATE DEFINER= ``@`` PROCEDURE `Crystal2MAS_N`(StartDT DATE, depth INT, params VARCHAR(512))
Должно быть CREATE DEFINER= ``имя_пользователя_бд@ip_адрес_расположения _бд`` PROCEDURE `Crystal2MAS_N`(StartDT DATE, depth INT, params VARCHAR(512))
...
Рейтинг: 0 / 0
Помогите с ошибкой 1449
    #39779338
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yarik1986,

Почти. Только адрес расположения клиента.
...
Рейтинг: 0 / 0
Помогите с ошибкой 1449
    #39779340
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если Вы не указываете SQL SECURITY, то нет никакого смысла указывать DEFINER. Просто уберите эту характеристику. Совсем.
...
Рейтинг: 0 / 0
Помогите с ошибкой 1449
    #39779403
Yarik1986
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо огромное. В БД внешняя процедура заработала.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите с ошибкой 1449
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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