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

Cetak info debug dari prosedur tersimpan di MySQL

Opsi 1:Letakkan ini dalam prosedur Anda untuk mencetak 'komentar' ke stdout saat dijalankan.

SELECT 'Comment';

Opsi 2:Letakkan ini dalam prosedur Anda untuk mencetak variabel dengannya ke stdout:

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

Ini mencetak myvar is 5 ke stdout saat prosedur berjalan.

Opsi 3, Buat tabel dengan satu kolom teks bernama tmptable , dan kirim pesan ke sana:

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

Anda dapat menempatkan prosedur di atas dalam prosedur tersimpan, jadi yang perlu Anda tulis hanyalah ini:

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

Yang menghemat beberapa penekanan tombol.

Opsi 4, Log pesan ke file

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

Ada batasan yang sangat berat pada perintah ini. Anda hanya dapat menulis outfile ke area pada disk yang memberikan izin membuat dan menulis grup 'lainnya'. Seharusnya berfungsi menyimpannya ke direktori /tmp.

Juga setelah Anda menulis outfile, Anda tidak dapat menimpanya. Ini untuk mencegah cracker me-rooting kotak Anda hanya karena mereka telah menyuntikkan SQL ke situs web Anda dan dapat menjalankan perintah arbitrer di 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. Bagaimana saya bisa mencari di dalam tabel nilai yang dipisahkan koma?

  2. PHP PDO terkait:Perbarui pernyataan SQL tidak memperbarui konten database

  3. Masukkan ke dalam tabel MySQL atau perbarui jika ada

  4. Apakah SQL Server 2005 memiliki tipe data ENUM yang setara dengan MySql?

  5. MySQL Trigger:salin nilai auto_increment ke kolom lain saat dimasukkan