Как вы создаете и используете динамический sql в хранимой процедуре MySQL?Как создать динамический SQL в хранимой процедуре MySQL
ответ
Я не верю, что MySQL поддерживает динамический sql. Вы можете делать «подготовленные» утверждения, похожие, но разные.
Вот пример:
mysql> PREPARE stmt FROM
-> 'select count(*)
-> from information_schema.schemata
-> where schema_name = ? or schema_name = ?'
;
Query OK, 0 rows affected (0.00 sec)
Statement prepared
mysql> EXECUTE stmt
-> USING @schema1,@schema2
+----------+
| count(*) |
+----------+
| 2 |
+----------+
1 row in set (0.00 sec)
mysql> DEALLOCATE PREPARE stmt;
Подготовленные заявления часто используются, чтобы увидеть план выполнения для данного запроса. Поскольку они выполняются с помощью команды , команда и sql может быть присвоена переменной, которую вы можете приблизить к той же самой динамике, что и динамический sql.
Вот хороший link об этом:
Не забудьте освобождать stmt
используя последнюю строку!
Удачи!
После 5.0.13, в хранимых процедурах, вы можете использовать динамический SQL:
delimiter //
CREATE PROCEDURE dynamic(IN tbl CHAR(64), IN col CHAR(64))
BEGIN
SET @s = CONCAT('SELECT ',col,' FROM ',tbl);
PREPARE stmt FROM @s;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END
//
delimiter ;
Dynamic SQL не работает функций или триггеров. См. the MySQL documentation для более широкого использования.
Вы можете пройти через вне динамический оператор с помощью определяемых пользователем переменных
Server version: 5.6.25-log MySQL Community Server (GPL)
mysql> PREPARE stmt FROM 'select "AAAA" into @a';
Query OK, 0 rows affected (0.01 sec)
Statement prepared
mysql> EXECUTE stmt;
Query OK, 1 row affected (0.01 sec)
DEALLOCATE prepare stmt;
Query OK, 0 rows affected (0.01 sec)
mysql> select @a;
+------+
| @a |
+------+
|AAAA |
+------+
1 row in set (0.01 sec)
- 1. динамический sql в mysql хранимой процедуре
- 2. динамический sql в хранимой процедуре
- 3. Динамический MySQL Где в хранимой процедуре
- 4. Динамический динамический динамический стол SQL в хранимой процедуре
- 5. конкатенация в хранимой процедуре mysql
- 6. динамический db2 запрос в хранимой процедуре
- 7. ошибка в хранимой процедуре mysql
- 8. Как написать динамический sql в Oracle Хранимой процедуре?
- 9. Как создать переменную автоматического приращения в моей хранимой процедуре sql
- 10. Динамический тип данных параметров в хранимой процедуре
- 11. Ошибка Mysql в хранимой процедуре
- 12. MySQL: IF в хранимой процедуре
- 13. Ошибка в хранимой процедуре MySQL
- 14. Динамический SQL в хранимой процедуре - конкатенация с несколькими столбцами
- 15. Динамический SQL, используемый в описании случая в хранимой процедуре
- 16. SQL Server: динамический запрос в хранимой процедуре в
- 17. Как создать журналы в хранимой процедуре
- 18. Динамический SQL-запрос в процедуре
- 19. динамический sql в хранимой процедуре не удалось получить требуемый результат
- 20. Ошибка в хранимой процедуре mySql
- 21. Как использовать условие в хранимой процедуре mysql
- 22. Кэширование динамического sql в хранимой процедуре
- 23. Переменные в хранимой процедуре MySQL
- 24. MySQL - Как исключить исключение в хранимой процедуре?
- 25. Ошибка в хранимой процедуре MySQL?
- 26. Ошибка в MySQL хранимой процедуре
- 27. Операция MySQL в хранимой процедуре
- 28. SQL IF в хранимой процедуре
- 29. Как создать mysql вложенный цикл в хранимой процедуре
- 30. Ограничение использования динамического SQL в хранимой процедуре
она не работает, когда `? 'Находится в месте имени таблицы – 2010-01-11 19:50:04