Bagaimana cara saya menunjukkan peringatan MySQL yang baru saja terjadi?


161

Saya baru saja menjalankan pernyataan MySQL CREATE TABLE sederhana yang menghasilkan baris

"Kueri OK, 0 baris terpengaruh, 1 peringatan (0,07 dtk)."

Tapi itu tidak benar-benar menunjukkan kepada saya apa peringatan itu. Bagaimana Anda bisa melihat isi peringatan yang baru saja terjadi? Saya menggunakan MySQL 5.1, jika ada bedanya. Satu-satunya hal yang saya temukan online adalah "TAMPILKAN PERINGATAN;" tetapi itu hanya menghasilkan

"Set kosong (0,00 dtk)."


1
seperti yang orang lain tunjukkan untuk mysql interaktif, Anda dapat, (1.) memulai sesi interaktif dengan --show-warnings(lihat man mysql) atau (2.) jika Anda berada di sesi interaktif yang ada, Anda dapat mengaktifkan perilaku yang sama dengan warnings(lihat man mysql).
Trevor Boyd Smith

Jawaban:


201

SHOW WARNINGSadalah satu-satunya metode yang saya ketahui, tetapi Anda harus segera menjalankannya setelah kueri yang memiliki peringatan terlampir. Jika Anda menjalankan kueri lain di antaranya, atau menjatuhkan koneksi, maka SHOW WARNINGStidak akan berfungsi.

Halaman manual MySQL untuk SHOW PERINGATAN tidak menunjukkan metode lain, jadi saya cukup yakin bahwa Anda terjebak dengannya.


Ini membantu saya - tetapi Anda harus menjalankannya segera setelah permintaan yang memiliki peringatan yang menyertainya
asgs

98

Anda juga dapat mengatur baris perintah untuk selalu menampilkan peringatan setelah permintaan menggunakan \ W

Anda dapat mematikannya lagi dengan \ w


3
Ini sempurna bagi saya. Tambahkan '\ W' ke bagian atas skrip saya dan kami siap berangkat!
Matt Klein

1
Itu masih ada: dev.mysql.com/doc/refman/5.7/en/mysql-commands.html tetapi Anda mungkin tidak menggunakan command-line mysqlklien. Ini hanya berfungsi mysql, bukan di perpustakaan MySQL.
Yvan

Apakah ada cara untuk mengatur flag ini dari file .my.cnf?
StR

22

@ HorusKol, apakah Anda memiliki dokumentasi untuk itu? Saya tidak dapat menemukannya. Tetapi saya menemukan bahwa opsi baris perintah --show-warningsakan melakukan pekerjaan itu, menurut manual MySQL .


6
jika kamu melakukan \? di baris perintah untuk bantuan MySQL, Anda dapat melihat dua opsi untuk \ w (peringatan mati) dan \ W (peringatan aktif) - ini mungkin tergantung versi, tapi saya cukup yakin ini sudah ada di MySQL 5 selama ini.
HorusKol

@HorusKol, terima kasih dua kali lipat untuk kembali dan menjawab komentar-sebagai-jawaban-yang mengerikan saya. (Saya masih baru, dan tidak tahu apa-apa!)
Pops
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.