Я пытаюсь написать общую процедуру sql, которая может выполнять любую строку в виде инструкции sql.динамический sql в mysql хранимой процедуре
Вот определение процедуры.
DELIMITER //
DROP PROCEDURE IF EXISTS execute_dynamic_sql;
CREATE PROCEDURE execute_dynamic_sql (IN sql_query longtext)
BEGIN
SELECT sql_query;
PREPARE stmt FROM @sql_query;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END //
Я звоню выше функции, как это
mysql> call execute_dynamic_sql('show tables');
-> //
+-------------+
| sql_query |
+-------------+
| show tables |
+-------------+
1 row in set (0.00 sec)
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NULL' at line 1
mysql> #
Может кто-нибудь сказать мне, почему приходит ошибка?
... Почему вы пишете процедуру для выполнения запроса? Почему бы просто не выполнить запрос? – ceejayoz
Мне нужно сделать много операторов sql и выполнить его. Итак, я переместил 4 общие строки в другую процедуру. –