Error 1305 42000

[MySQL] При вызове хранимой процедуры отображается ОШИБКА 1305 (42000): PROCEDURE test.sp1 не существует, Русские Блоги, лучший сайт для обмена техническими статьями программиста.

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

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)

Содержание

  1. Русские Блоги
  2. [MySQL] При вызове хранимой процедуры отображается ОШИБКА 1305 (42000): PROCEDURE test.sp1 не существует
  3. Описание проблемы:
  4. Исправление проблем:
  5. Интеллектуальная рекомендация
  6. Реализация оценки приложения iOS
  7. JS функциональное программирование (е)
  8. PWN_JarvisOJ_Level1
  9. Установка и развертывание Kubernetes
  10. На стороне многопроцессорного сервера — (2) *
  11. Ошибка с процедурами mysql. ERROR 1304 & ERROR 1305

Русские Блоги

[MySQL] При вызове хранимой процедуры отображается ОШИБКА 1305 (42000): PROCEDURE test.sp1 не существует

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

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

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

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

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

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

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

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

Интеллектуальная рекомендация

Реализация оценки приложения iOS

Есть два способа получить оценку приложения: перейти в App Store для оценки и оценка в приложении. 1. Перейдите в App Store, чтобы оценить ps: appid можно запросить в iTunes Connect 2. Встроенная оцен.

JS функциональное программирование (е)

Давайте рассмотрим простой пример, чтобы проиллюстрировать, как используется Reduce. Первый параметр Reduce — это то, что мы принимаем массив arrayOfNums, а второй параметр — функцию. Эта функция прин.

PWN_JarvisOJ_Level1

Nc первый Затем мы смотрим на декомпиляцию ida Перед «Hello, World! N» есть уязвимая_функция, проверьте эту функцию после ввода Видно, что только что появившийся странный адрес является пе.

Установка и развертывание Kubernetes

На самом деле, я опубликовал статью в этом разделе давным -давно, но она не достаточно подробно, и уровень не является ясным. Когда я развернулся сегодня, я увидел его достаточно (хотя это было успешн.

На стороне многопроцессорного сервера — (2) *

Обработка сигнала Родительский процесс часто очень занят, поэтому вы не можете просто вызвать функцию waitpid, чтобы дождаться завершения дочернего процесса. Затем обсудите решение. Обратитесь .

Источник

Ошибка с процедурами mysql. ERROR 1304 & ERROR 1305

Я новичок в использовании процедур и, похоже, не могу работать на моем компьютере. Я использую MySQL v5.1.36 и вводя свой код с помощью консоли MySQL на сервере WAMPP. Если я перейду к (повторной) процедуре создания. Я получаю ошибку # 1304 (42000).

Однако, если я попытаюсь использовать процедуру, я получаю ошибку # 1305 (42000).

Если процедура существует для одного, как она не может существовать для другого? Что я делаю неправильно.

Я считаю, что проблемы

  • Первая ошибка возникает из-за того, что вы пытаетесь воссоздать существующую процедуру. Если вы сначала должны отказаться от процедуры, вы не получите эту ошибку,
  • Вторая ошибка заключается в том, что ПРОЦЕДУРЫ вызывается с помощью инструкций CALL, а FUNCTIONs вызывается как ссылки на функции, как в вашем коде. Вы должны определить FUNCTION, а не ПРОЦЕДУРА. (Документация MySQL) говорит:

Операция CREATE FUNCTION также используется в MySQL для поддержки UDF (пользовательские функции). См. Раздел 21.2, “Добавление новых функций в MySQL”. UDF можно рассматривать как внешний хранимая функция. Сохраненные функции поделитесь своим пространством имен с UDF. Видеть Раздел 8.2.3, “Обозначение имени функции” и Резолюция “, для правил описание интерпретации сервера ссылки на различные виды функции.

Чтобы вызвать хранимую процедуру, используйте CALL (см. Раздел 12.2.1,” Синтаксис вызова”). Чтобы вызвать сохраненный функции, обратитесь к нему в выражение. Функция возвращает значение во время оценки выражения.

Источник

@XuHuaiyu
Thanks for your detailed answer.
In my machine I get this from TiDB:

MySQL [test]> begin; select @@tidb_current_ts;
Query OK, 0 rows affected (0.01 sec)

+———————+
| @@tidb_current_ts |
+———————+
| 394875078526107649 |
+———————+
1 row in set (0.00 sec)

MySQL [test]> begin; select @@tidb_current_ts;
Query OK, 0 rows affected (0.00 sec)

+———————+
| @@tidb_current_ts |
+———————+
| 394875078526107649 |
+———————+
1 row in set (0.00 sec)

MySQL [test]> begin; select @@tidb_current_ts;
Query OK, 0 rows affected (0.00 sec)

+———————+
| @@tidb_current_ts |
+———————+
| 394875078526107649 |
+———————+
1 row in set (0.00 sec)

You can see that the result is not auto-incrementing after per call.

MySQL 5.7 works well:

mysql> SELECT UUID_SHORT();
+——————-+
| UUID_SHORT() |
+——————-+
| 97329517219020800 |
+——————-+
1 row in set (0.02 sec)

mysql> SELECT UUID_SHORT();
+——————-+
| UUID_SHORT() |
+——————-+
| 97329517219020801 |
+——————-+
1 row in set (0.00 sec)

mysql> SELECT UUID_SHORT();
+——————-+
| UUID_SHORT() |
+——————-+
| 97329517219020802 |
+——————-+
1 row in set (0.00 sec)

I think its a better choice to support auto-increment after per call for a global auto-increment unique id generation strategy. So, I think we still need a uuid_short() implementation in TiDB.

Note: What I mean global auto-increment unique id is TiDB Cluster Instance scope, not just the same table scope.

igor3310qq

0 / 0 / 0

Регистрация: 27.03.2013

Сообщений: 95

1

20.07.2015, 19:16. Показов 2210. Ответов 4

Метки нет (Все метки)


Добрый день!
Скажите пожалуйста , что это за ощибка и как ее исправить:
при вводе запроса к БД

SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SET @DB1 = '2q_russia';
SET @DB2 = '2q_temp'; 
SET @LNG_ID = 16; 
SET @COLUMN_FILTER = NULL; удалять)
SET @ROW_FILTER = TRUE; 
 
CALL EXEC_QUERY3('
    INSERT INTO @DB2.@TABLE
    SELECT
        @COLUMNS
    FROM @DB1.@TABLE
    WHERE
        ACO_GRA_LNG_ID=@LNG_ID
', 'ALI_COORDINATES'
);

получаю ощибку
ERROR 1305 (42000) at line 12: PROCEDURE 2_2015.EXEC_QUERY3 does not exist
скажите пожалуйста как ее исправить?

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



1312 / 944 / 144

Регистрация: 17.01.2013

Сообщений: 2,348

21.07.2015, 07:39

2

igor3310qq, читайте про PREPARE



1



0 / 0 / 0

Регистрация: 27.03.2013

Сообщений: 95

21.07.2015, 09:38

 [ТС]

3

Спасибо , правда я на английском непонимаю — можете ткнуть носом что надо исправить и это язык sql хоть?
С уважением.
Игорь



0



1312 / 944 / 144

Регистрация: 17.01.2013

Сообщений: 2,348

21.07.2015, 10:41

4



1



0 / 0 / 0

Регистрация: 27.03.2013

Сообщений: 95

21.07.2015, 10:43

 [ТС]

5

А текущий как то можно внедрить ? ( код не мой но он оч нужен)



0



Понравилась статья? Поделить с друзьями:
  • Error 1304 coreldraw 2019
  • Error 1303 что это
  • Error 1303 the installer has insufficient privileges что делать
  • Error 1302 no such element
  • Error 1301 cannot create the file a directory with this name already exists