Ошибка 1305 mysql

Используется
МySql — 5,7 x64

Имеется две таблицы

-- Дамп структуры для таблица 01tst.tst_003_tb_01_calcul
CREATE TABLE IF NOT EXISTS `tst_003_tb_01_calcul` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `pol_1` char(50) DEFAULT NULL,
  `idsub` int(11) DEFAULT NULL,
  `pol_3` int(11) DEFAULT NULL,
  `pol_scepka` text,
  UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;

-- Дамп данных таблицы 01tst.tst_003_tb_01_calcul: ~3 rows (приблизительно)
/*!40000 ALTER TABLE `tst_003_tb_01_calcul` DISABLE KEYS */;
INSERT INTO `tst_003_tb_01_calcul` (`id`, `pol_1`, `idsub`, `pol_3`, `pol_scepka`) VALUES
    (1, 'dog 1', 1, 1, '< ТЕКСТ _ ЗАПИСИ pol_4_zp 1>  , < ТЕКСТ _ ЗАПИСИ pol_4_zp 2>  , < ТЕКСТ _ ЗАПИСИ pol_4_zp 3> '),
    (4, 'dog 2', 2, 1, '< ТЕКСТ _ ЗАПИСИ pol_4_zp 4>  , < ТЕКСТ _ ЗАПИСИ pol_4_zp 5>  , < ТЕКСТ _ ЗАПИСИ pol_4_zp 6>  '),
    (7, 'dog 3', 3, 1, '< ТЕКСТ _ ЗАПИСИ pol_4_zp 7>  , < ТЕКСТ _ ЗАПИСИ pol_4_zp 8>  , < ТЕКСТ _ ЗАПИСИ pol_4_zp 9>');
/*!40000 ALTER TABLE `tst_003_tb_01_calcul` ENABLE KEYS */;

-- Дамп структуры для таблица 01tst.tst_003_tb_02_calcul
CREATE TABLE IF NOT EXISTS `tst_003_tb_02_calcul` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `pol_1` char(50) DEFAULT NULL,
  `idsub` int(11) DEFAULT NULL,
  `pol_3` int(11) DEFAULT NULL,
  `pol_4` text,
  UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;

-- Дамп данных таблицы 01tst.tst_003_tb_02_calcul: ~9 rows (приблизительно)
/*!40000 ALTER TABLE `tst_003_tb_02_calcul` DISABLE KEYS */;
INSERT INTO `tst_003_tb_02_calcul` (`id`, `pol_1`, `idsub`, `pol_3`, `pol_4`) VALUES
    (1, 'dog 1', 1, 1, 'ТЕКСТ _ ЗАПИСИ pol_4_zp 1'),
    (2, 'dog 1', 1, 2, 'ТЕКСТ _ ЗАПИСИ pol_4_zp 2'),
    (3, 'dog 1', 1, 3, 'ТЕКСТ _ ЗАПИСИ pol_4_zp 3'),
    (4, 'dog 2', 2, 1, 'ТЕКСТ _ ЗАПИСИ pol_4_zp 4'),
    (5, 'dog 2', 2, 2, 'ТЕКСТ _ ЗАПИСИ pol_4_zp 5'),
    (6, 'dog 2', 2, 3, 'ТЕКСТ _ ЗАПИСИ pol_4_zp 6'),
    (7, 'dog 3', 3, 1, 'ТЕКСТ _ ЗАПИСИ pol_4_zp 7'),
    (8, 'dog 3', 3, 2, 'ТЕКСТ _ ЗАПИСИ pol_4_zp 8'),
    (9, 'dog 3', 3, 3, 'ТЕКСТ _ ЗАПИСИ pol_4_zp 9');
/*!40000 ALTER TABLE `tst_003_tb_02_calcul` ENABLE KEYS */;

Запрос для группировки из приведённых выше таблиц в одну

select t01.idsub, t01.pol_1, GROUP_CONCAT(t02.pol_4) AS scepk 
from tst_003_tb_01_calcul t01 
inner join tst_003_tb_02_calcul t02  
    ON t02.idsub = t01.idsub 
group by t01.idsub

При запуске запроса появляется ошибка:
«Error Code: 1305. FUNCTION 01tst. GROUP_CONCAT does not exist»

Вопрос
Как избавится от ошибки?

Скрин
введите сюда описание изображения

I need to use REGEXP_REPLACE function in MySQL Workbench 8.0.17.

However, even tutorial example like:

SELECT REGEXP_REPLACE('a b c', 'b', 'X');

Returns an error with the following description:

Error Code: 1305. FUNCTION my_schema.REGEXP_REPLACE does not exist

Same for other REGEXP functions as well.
Maybe the problem is in my_schema?
I am a new SQL user, so I cannot identify the problem.

Please help me solve the issue.
It will be much appreciated.

Страниц: 1

  • Список
  •  » Раздел для начинающих
  •  » INFO: MYSQL ERROR 1305: FUNCTION luigi_rich.TO_SECONDS does not exist

#1 19.03.2017 14:11:40

JamesCaeser
Участник
Зарегистрирован: 19.03.2017
Сообщений: 5

INFO: MYSQL ERROR 1305: FUNCTION luigi_rich.TO_SECONDS does not exist

Помогите, что делать?
Постоянно выпадает ошибка — INFO: MYSQL ERROR 1305: FUNCTION luigi_rich.TO_SECONDS does not exist
Я не понимаю где найти и как исправить эту ошибку, кто может подсказать что делать? Пожалуйста!

Неактивен

#2 19.03.2017 14:30:17

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3876

Re: INFO: MYSQL ERROR 1305: FUNCTION luigi_rich.TO_SECONDS does not exist

В базе данных luigi_rich должна быть хранимая функция TO_SECONDS, но ее нет. Возможно, забыли перенести при переезде.

Неактивен

#3 19.03.2017 15:32:24

JamesCaeser
Участник
Зарегистрирован: 19.03.2017
Сообщений: 5

Re: INFO: MYSQL ERROR 1305: FUNCTION luigi_rich.TO_SECONDS does not exist

А куда вставить этот to_seconds чтобы все заработало? Никак понять не могу.

Неактивен

#4 19.03.2017 15:36:50

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5817

Re: INFO: MYSQL ERROR 1305: FUNCTION luigi_rich.TO_SECONDS does not exist

TO_SECONDS(expr) это стандартная
вероятно у вас в запросе есть пробел перед открывающей скобкой.

Неактивен

#5 19.03.2017 16:29:02

JamesCaeser
Участник
Зарегистрирован: 19.03.2017
Сообщений: 5

Re: INFO: MYSQL ERROR 1305: FUNCTION luigi_rich.TO_SECONDS does not exist

А где найти эту строку? Все перерыл, нигде нету, ни в БД, ни в других файлах.

Неактивен

#6 19.03.2017 16:33:39

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5817

Re: INFO: MYSQL ERROR 1305: FUNCTION luigi_rich.TO_SECONDS does not exist

а где у вас возникает ошибка? это работа сайта, перенос данных, выполнение запроса в клиенте?

Неактивен

#7 19.03.2017 16:46:16

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3876

Re: INFO: MYSQL ERROR 1305: FUNCTION luigi_rich.TO_SECONDS does not exist

Какая у Вас версия MySQL?

TO_SECONDS() is available beginning with MySQL 5.5.0.

Неактивен

#8 19.03.2017 16:55:31

JamesCaeser
Участник
Зарегистрирован: 19.03.2017
Сообщений: 5

Re: INFO: MYSQL ERROR 1305: FUNCTION luigi_rich.TO_SECONDS does not exist

Данная ошибка возникает при запуске сервера в MTA, какая версия, я сам точно не знаю, вроде 5.6, но это не точно, можно где-то узнать?

Неактивен

#9 20.03.2017 11:45:12

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2412

Re: INFO: MYSQL ERROR 1305: FUNCTION luigi_rich.TO_SECONDS does not exist

Узнать можно с помощью запроса

select version();

в консоли mysql или phpmyadmin, если у Вас такой установлен.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли…

Неактивен

#10 20.03.2017 19:29:41

JamesCaeser
Участник
Зарегистрирован: 19.03.2017
Сообщений: 5

Re: INFO: MYSQL ERROR 1305: FUNCTION luigi_rich.TO_SECONDS does not exist

Вроде вот — 5.6.21, это сможет как-то помочь вам?

Неактивен

#11 20.03.2017 19:51:26

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5817

Re: INFO: MYSQL ERROR 1305: FUNCTION luigi_rich.TO_SECONDS does not exist

значит проблема в том, что перед скобкой стоит лишний символ (пробел или перенос строки, или …)
где это искать в МТА лучше спрашивать на соответствующем профильном ресурсе
как правило, такие ошибки следствие установки «левого» плагина/мода

Неактивен

Страниц: 1

  • Список
  •  » Раздел для начинающих
  •  » INFO: MYSQL ERROR 1305: FUNCTION luigi_rich.TO_SECONDS does not exist

Описание проблемы:

1. Создайте простую хранимую процедуру запроса в MySQL:

mysql> CREATE PROCEDURE spl() SELECT VERSION();
Query OK, 0 rows affected (0.01 sec)

2. Затем используйте CALL для вызова этой хранимой процедуры, и ошибка ОШИБКА 1305 (42000): PROCEDURE test.sp1 не существует:

mysql> CALL sp1;
ERROR 1305 (42000): PROCEDURE test.sp1 does not exist

Исправление проблем:

1. Сначала подумайте, действительно ли эта хранимая процедура отсутствует, проверьте текущую хранимую процедуру и убедитесь, что хранимая процедура существует:

mysql> SHOW PROCEDURE STATUS;
+------+------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
| Db   | Name | Type      | Definer        | Modified            | Created             | Security_type | Comment | character_set_client | collation_connection | Database Collation |
+------+------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
| test | spl  | PROCEDURE | [email protected] | 2019-02-28 13:00:02 | 2019-02-28 13:00:02 | DEFINER       |         | utf8                 | utf8_general_ci      | utf8_general_ci    |
+------+------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
1 row in set (0.01 sec)

2. В это время я думал, что у пользователя нет разрешения на вызов текущей хранимой процедуры, и разрешение хранимой процедуры было предоставлено текущему пользователю. В это время произошла другая ошибка:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
ERROR 1133 (42000): Can't find any matching row in the user table

Это обнаруживается путем запроса данных, которые необходимо обновить текущую хранимую процедуру перед выполнением оператора авторизации:

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL  PRIVILEGES ON test.*  TO 'root'@localhost;
Query OK, 0 rows affected (0.00 sec)

Выполните вызов этой хранимой процедуры еще раз, и отобразится успешный вызов:

mysql> SHOW PROCEDURE STATUS;
+------+------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
| Db   | Name | Type      | Definer        | Modified            | Created             | Security_type | Comment | character_set_client | collation_connection | Database Collation |
+------+------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
| test | spl  | PROCEDURE | [email protected] | 2019-02-28 13:11:23 | 2019-02-28 13:11:23 | DEFINER       |         | utf8                 | utf8_general_ci      | utf8_general_ci    |
+------+------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
1 row in set (0.01 sec)

mysql> CALL spl;
+-----------+
| VERSION() |
+-----------+
| 5.5.40    |
+-----------+
1 row in set (0.00 sec)

Problem Description:

1. Create a simple query stored procedure in MySQL:

mysql> CREATE PROCEDURE spl() SELECT VERSION();
Query OK, 0 rows affected (0.01 sec)

2. Then call this stored procedure with CALL, error ERROR 1305 (42000): PROCEDURE test.sp1 does not exist:

mysql> CALL sp1;
ERROR 1305 (42000): PROCEDURE test.sp1 does not exist

Troubleshooting:

1. First consider whether this storage process is not present, view the current stored procedure, and find that the stored procedure exists:

mysql> SHOW PROCEDURE STATUS;
+------+------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
| Db   | Name | Type      | Definer        | Modified            | Created             | Security_type | Comment | character_set_client | collation_connection | Database Collation |
+------+------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
| test | spl  | PROCEDURE | [email protected] | 2019-02-28 13:00:02 | 2019-02-28 13:00:02 | DEFINER       |         | utf8                 | utf8_general_ci      | utf8_general_ci    |
+------+------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
1 row in set (0.01 sec)

2. At this point, it is thought that the user does not have the calling permission of the current stored procedure, and gives the stored procedure permission to the current user. At this time, an error occurs:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
ERROR 1133 (42000): Can't find any matching row in the user table

By querying the data, you need to refresh the current stored procedure before executing the authorization statement:

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL  PRIVILEGES ON test.*  TO 'root'@localhost;
Query OK, 0 rows affected (0.00 sec)

3. Execute this call to the stored procedure again, showing a successful call:

mysql> SHOW PROCEDURE STATUS;
+------+------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
| Db   | Name | Type      | Definer        | Modified            | Created             | Security_type | Comment | character_set_client | collation_connection | Database Collation |
+------+------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
| test | spl  | PROCEDURE | [email protected] | 2019-02-28 13:11:23 | 2019-02-28 13:11:23 | DEFINER       |         | utf8                 | utf8_general_ci      | utf8_general_ci    |
+------+------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
1 row in set (0.01 sec)

mysql> CALL spl;
+-----------+
| VERSION() |
+-----------+
| 5.5.40    |
+-----------+
1 row in set (0.00 sec)

I ran into an odd issue on a project I updated awhile ago. I updated an existing sql statement to include IFNULL for an exclusion check. It worked fine on my dev machine, but caused an issue on the production machine.

The version of MySQL on my dev machine was a little bit newer than production so the issue never came up. Here is the error the sql server returned:
#1305 — FUNCTION [DATABASE_NAME].ifnull does not exist

Here is a little bit of the sql that caused the error:
AND IFNULL ( `tbl_category_admin`.`admin_key_id` =5, true )

The problem was caused by the space between IFNULL and (. Changing it to IFNULL( solved the problem. If you run into an issue where MySQL returns an error saying a given function does not exist look for spaces between the function and the «(«.

Понравилась статья? Поделить с друзьями:
  • Ошибка 1304 фольксваген
  • Ошибка 131 на ваз 2112
  • Ошибка 1304 приора 16 клапанов
  • Ошибка 131 мультитроникс
  • Ошибка 1304 при установке офиса