Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Men-debug Pemicu MySQL

Ada cara alternatif untuk mengujinya dengan debug meja . Dalam contoh di sini, mereka membuatnya dalam debug sendiri basis data.

Langkah 1: Buat tabel

DROP TABLE IF EXISTS debug;
CREATE TABLE debug (
  proc_id varchar(100) default NULL,
  debug_output text,
  line_id int(11) NOT NULL auto_increment,
  PRIMARY KEY  (line_id)
)

Langkah 2: Buat SP debug untuk mengisi tabel debug

DELIMITER $$

DROP PROCEDURE IF EXISTS `debug_insert` $$
CREATE PROCEDURE `debug_insert`(in p_proc_id varchar(100),in p_debug_info text)
begin
  insert into debug (proc_id,debug_output)
  values (p_proc_id,p_debug_info);
end $$

DROP PROCEDURE IF EXISTS `debug_on` $$
CREATE PROCEDURE `debug_on`(in p_proc_id varchar(100))
begin
  call debug_insert(p_proc_id,concat('Debug Started :',now()));
end $$

DROP PROCEDURE IF EXISTS `debug_off` $$
CREATE PROCEDURE `debug_off`(in p_proc_id varchar(100))
begin
  call debug_insert(p_proc_id,concat('Debug Ended :',now()));
  select debug_output from debug where proc_id = p_proc_id order by line_id;
  delete from debug where proc_id = p_proc_id;
end $$

Langkah 3: Aktifkan SP debug di pemicu Anda

Seperti ini,

CREATE PROCEDURE test_debug()
begin
declare l_proc_id varchar(100) default 'test_debug';
  call debug_on(l_proc_id);
  call debug_insert(l_proc_id,'Testing Debug');
  call debug_off(l_proc_id);
end $$

Hasilnya tabel debug akan terisi sebagai berikut,

+------------------------------------+
| debug_output                       |
+------------------------------------+
| Debug Started :2006-03-24 16:10:33 |
| Testing Debug                      |
| Debug Ended :2006-03-24 16:10:33   |
+------------------------------------+


  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.sock hilang; menghasilkan OperationalError:(2002, Tidak dapat terhubung ke server MySQL lokal melalui soket '/tmp/mysql.sock' (2))

  2. Mencegah injeksi SQL di Node.js

  3. Apakah ada penurunan kinerja jika ada terlalu banyak kolom dalam sebuah tabel?

  4. Grails:kesalahan dalam sintaks SQL saat mengubah dialek hibernasi

  5. MySQL - Bergabung dengan 2 tabel