Этот шаблон предназначен для создания динамических ( подготовленных на языке MySQL) запросов на основе имен столбцов в конкретной таблице. INFORMATION_SCHEMA
- это встроенная база данных с таблицами только для чтения, описывающими все таблицы во всех базах данных на сервере MySQL.
Первый запрос в вашей последовательности извлекает текстовую строку в локальной переменной @COLUMNS
со значением типа
id,name,value,description
для таблицы с именем table_name
с этими четырьмя столбцами.
Третий возвращает строку в локальной переменной @s
со значением, содержащим запрос, подобный
SELECT id,name,value,description FROM table_name
Четвертый, PREPARE
, готов к выполнению EXECUTE stmt
, который выполняет запрос. Вы можете прочитать о PREPARE
и EXECUTE
здесь .
Вся последовательность запросов в вашем вопросе делает почти то же самое, что и SELECT * FROM table_name
.
В вашем первом запросе есть дефект. Вы должны добавить AND TABLE_SCHEMA = DATABASE()
к предложению WHERE
. В противном случае вы можете выбрать столбцы из таблиц с именем table_name
в нескольких базах данных.