как получить оператор SQL на основе идентификатора процесса? - PullRequest
0 голосов
/ 19 января 2020

Я запускаю SQL ниже, после этого я запускаю SELECT * FROM information_schema.processlist, чтобы получить оператор SQL "update new_table set c1 = c1 + 12", однако информация о столбце равна нулю, так как получить выписку?

use   test_db;
start transaction;
update new_table set c1=c1+12

enter image description here

1 Ответ

0 голосов
/ 19 января 2020

Если в столбце Command указано «Sleep», то в этом сеансе не выполняется запрос SQL. Возможно, клиент выполнил запрос UPDATE, который вы показали, но этот запрос завершен. Он отображается только в списке процессов во время его выполнения.

Вы можете просмотреть таблицу performance_schema.events_statements_history_long, чтобы увидеть предыдущие запросы, которые выполнялись в каждом сеансе. Требуется немного усилий, чтобы присоединить эту таблицу к списку процессов. См https://dev.mysql.com/doc/mysql-perfschema-excerpt/8.0/en/performance-schema-statement-tables.html

...