Pertanyaan: Saya telah menggunakan perintah SPOOL di Oracle SQL untuk menyimpan hasil kueri ke dalam file dan setelah semuanya selesai, spool dapat dimatikan. Bagaimana saya bisa mencapai hal yang sama di MySQL? Misalnya, Di MySQL, kueri 'SHOW FULL PROCESSLIST' akan mencantumkan semua proses MySQL yang sedang berjalan di layar (dan jika daftarnya panjang, Anda hanya akan melihat beberapa baris terakhir di layar). Saya ingin tahu apakah ada perintah seperti SPOOL di MySQL untuk menyimpan hasil kueri ke dalam file? atau setidaknya saya harus bisa menyalurkan ( | ) output ke perintah shell seperti 'more'.
Dalam ORACLE SQL:
Untuk menyimpan output hasil query dalam sebuah file, saya menggunakan spool.
sqlplus> SPOOL /tmp/output.txt sqlplus> select * from UserTable; sqlplus> SPOOL off;
Jawaban:Untuk MySQL
Metode 1:
Tidak ada perintah SPOOL di MySQL, tetapi Anda dapat menggunakan perintah alternatif tee untuk mengaktifkan pencatatan dan catatan untuk mematikan logging.
mysql> tee /tmp/test.txt Logging to file '/tmp/test.txt' mysql> show full processlist; +------+-----------+-----------+--------+---------+------+-------+-----------------------+ | Id | User | Host | db | Command | Time | State | Info | +------+-----------+-----------+--------+---------+------+-------+-----------------------+ | 7478 | sample | host.name| dbname | Sleep | 0 | | NULL | | 7479 | sample | host.name | NULL | Query | 0 | NULL | show full processlist | +------+-----------+-----------+--------+---------+------+-------+-----------------------+ 2 rows in set (0.00 sec) mysql> notee Outfile disabled.
Sekarang, Anda dapat memeriksa file log /tmp/text.txt.
Metode 2: Anda dapat menjalankan kueri MySQL dari prompt shell dan menyalurkan output ke lebih banyak lagi.
$ mysql -u root -p -e "show full processlist" | more
Catatan: Anda memerlukan hak istimewa untuk menjalankan kueri daftar proses.
Metode 3: Anda dapat menjalankan kueri dari prompt shell dan mengarahkan output ke file seperti yang ditunjukkan di bawah ini:
$ mysql -u root -p -e "show full processlist" | tee /tmp/out.txt
(atau)
$ mysql -u root -p -e "show full processlist" > /tmp/out.txt
SELECT INTO OUTFILE digunakan untuk kueri SELECT:
Jika Anda menjalankan kueri pemilihan, maka Anda dapat menggunakan SELECT INTO OUTFILE seperti yang ditunjukkan di bawah ini:
mysql> select * into outfile '/tmp/out.txt' from user_table;
Semoga membantu.