Mysql
 sql >> база данни >  >> RDS >> Mysql

Вземете пълен низ за заявка на MySQL при вмъкване или актуализиране

Можете да получите текущата SQL заявка като низ със следния израз:

SELECT info FROM INFORMATION_SCHEMA.PROCESSLIST WHERE id = CONNECTION_ID()

Така че това, което трябва да направите, е да създадете TRIGGER който се изпълнява при операции за вмъкване и/или актуализиране на вашата таблица, което трябва да (i) вземете текущия оператор на sql и (ii) вмъкнете го в друга таблица, така:

DELIMITER |

CREATE TRIGGER log_queries_insert BEFORE INSERT ON `your_table`
FOR EACH ROW
BEGIN
    DECLARE original_query VARCHAR(1024);
    SET original_query = (SELECT info FROM INFORMATION_SCHEMA.PROCESSLIST WHERE id = CONNECTION_ID());
    INSERT INTO `app_sql_debug_log`(`query`) VALUES (original_query);
END;
|
DELIMITER ;

Ще трябва да създадете два тригера - един за актуализации и един за вмъквания. Тригерът вмъква новата заявка като низ в app_sql_debug_log таблица в query колона.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Грешка десетичната точност на MySQL и PHP

  2. Избиране на всички елементи в една таблица и свързване с друга таблица, позволявайки нулеви стойности

  3. Някакъв начин да изберете, без да причинявате заключване в MySQL?

  4. Система за вход/регистрация с php и mysql

  5. Различни начини за попълване на потребителите на MySQL