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

Отпечатайте информация за отстраняване на грешки от съхранена процедура в MySQL

Опция 1:Поставете това във вашата процедура, за да отпечатате „коментар“ към стандартен извеждащ текст, когато се изпълнява.

SELECT 'Comment';

Опция 2:Поставете това във вашата процедура, за да отпечатате променлива с нея в стандартен извеждащ текст:

declare myvar INT default 0;
SET myvar = 5;
SELECT concat('myvar is ', myvar);

Това отпечатва myvar is 5 към stdout, когато процедурата се изпълнява.

Опция 3, Създайте таблица с една текстова колона, наречена tmptable , и изпращайте съобщения към него:

declare myvar INT default 0;
SET myvar = 5;
insert into tmptable select concat('myvar is ', myvar);

Можете да поставите горното в съхранена процедура, така че всичко, което трябва да напишете, е това:

CALL log(concat('the value is', myvar));

Което спестява няколко натискания на клавиши.

Опция 4, регистрирайте съобщения във файл

select "penguin" as log into outfile '/tmp/result.txt';

Има много тежки ограничения за тази команда. Можете да запишете изходящия файл само в области на диска, които дават на групата „други“ разрешения за създаване и запис. Трябва да работи, като го запише в директория /tmp.

Също така, след като напишете изходящия файл, не можете да го презапишете. Това е, за да предотвратите кракерите да руутват вашата кутия само защото са инжектирали SQL уебсайта ви и могат да изпълняват произволни команди в MySQL.



  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 Дублирана грешка с ALTER IGNORE TABLE

  2. Как мога лесно да конвертирам приложение на Django от mySQL в PostgreSQL?

  3. Защо тази актуализация на MySQL не работи?

  4. MySQL много бавен за заявка за промяна на таблица

  5. ОБЕМНО ВМЕСВАНЕ в MYSQL