sql >> Database teknologi >  >> RDS >> Mysql

Hvordan fejlretter du MySQL-lagrede procedurer?

Følgende debug_msg procedure kan kaldes for blot at udsende en fejlretningsmeddelelse til konsollen:

DELIMITER $$

DROP PROCEDURE IF EXISTS `debug_msg`$$
DROP PROCEDURE IF EXISTS `test_procedure`$$

CREATE PROCEDURE debug_msg(enabled INTEGER, msg VARCHAR(255))
BEGIN
  IF enabled THEN
    select concat('** ', msg) AS '** DEBUG:';
  END IF;
END $$

CREATE PROCEDURE test_procedure(arg1 INTEGER, arg2 INTEGER)
BEGIN
  SET @enabled = TRUE;

  call debug_msg(@enabled, 'my first debug message');
  call debug_msg(@enabled, (select concat_ws('','arg1:', arg1)));
  call debug_msg(TRUE, 'This message always shows up');
  call debug_msg(FALSE, 'This message will never show up');
END $$

DELIMITER ;

Kør derefter testen sådan her:

CALL test_procedure(1,2)

Det vil resultere i følgende output:

** DEBUG:
** my first debug message
** DEBUG:
** arg1:1
** DEBUG:
** This message always shows up


  1. MySQL konverter timediff output til dag, time, minut, sekund format

  2. Sådan ignoreres duplikatnøglefejl i T-SQL (SQL-server)

  3. Sådan begrænser du SHOW TABLES-forespørgsel

  4. MySQL bruger DB har ikke adgangskodekolonner - Installerer MySQL på OSX