Как иметь динамический SQL в хранимой процедуре MySQL

Я не верю, что MySQL поддерживает mysqld динамический SQL. Вы можете mysql-query делать «подготовленные» операторы, которые mysqldump похожи, но отличаются.

Вот mysql-if пример:

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;

Подготовленные операторы mysql-if часто используются для просмотра mysql-query плана выполнения данного mysql-query запроса. Поскольку они выполняются mysqlclient с помощью команды execute, а sql может mysqld быть назначено переменной, вы my-sql можете приблизиться к тому mysql-table же поведению, что и к динамическому mysqld sql.

Вот хороший link об этом:

Не mysql-table забудьте освободить stmt, используя mysqlclient последнюю строку!

Удачи!

mysql

dynamic

2022-10-26T09:36:33+00:00
Вопросы с похожей тематикой, как у вопроса:

Как иметь динамический SQL в хранимой процедуре MySQL