Rumah Keuangan Pribadi Bagaimana Menangani Kondisi SQL - dummies

Bagaimana Menangani Kondisi SQL - dummies

Daftar Isi:

Video: Cara Update Data Stok Secara Otomatis Menggunakan Trigger Dari MySQL 2024

Video: Cara Update Data Stok Secara Otomatis Menggunakan Trigger Dari MySQL 2024
Anonim

Anda dapat melihat program Anda di SQLSTATE setelah eksekusi setiap pernyataan SQL. Ada beberapa kemungkinan untuk apa yang mungkin ingin Anda lakukan selanjutnya. Apa yang Anda lakukan dengan pengetahuan yang Anda dapatkan?

  • Jika Anda menemukan kode kelas 00 , mungkin Anda tidak ingin melakukan apapun. Anda ingin eksekusi berjalan seperti semula.

  • Jika Anda menemukan kode kelas 01 atau 02 , Anda mungkin ingin melakukan tindakan khusus. Jika Anda mengharapkan indikasi "Peringatan" atau "Tidak Ditemukan", Anda mungkin ingin membiarkan eksekusi dilanjutkan. Jika Anda tidak mengharapkan salah satu dari kode kelas ini, Anda mungkin ingin memiliki cabang eksekusi pada prosedur yang dirancang khusus untuk menangani hasil yang tidak diharapkan, namun tidak sepenuhnya tidak diantisipasi, atau tidak ditemukan.

  • Jika Anda menerima kode kelas lainnya, ada yang salah. Anda harus bercabang dengan prosedur penanganan pengecualian. Prosedur mana yang Anda pilih untuk cabang tergantung pada isi dari tiga karakter subkelas, serta dua karakter kelas SQLSTATE. Jika beberapa pengecualian berbeda dimungkinkan, harus ada prosedur penanganan pengecualian untuk masing-masing karena pengecualian yang berbeda seringkali memerlukan tanggapan yang berbeda.

    Anda mungkin bisa memperbaiki beberapa kesalahan atau menemukan solusi. Kesalahan lainnya mungkin berakibat fatal; tidak ada yang akan mati, tapi akhirnya Anda harus menghentikan aplikasi ini.

Deklarasi Handler

Anda dapat menempatkan condition handler dalam sebuah pernyataan majemuk. Untuk membuat pengendali kondisi, Anda harus terlebih dahulu menyatakan kondisi yang akan ditangani. Kondisi yang dideklarasikan bisa menjadi semacam pengecualian, atau bisa juga menjadi sesuatu yang benar. Berikut adalah beberapa kondisi yang mungkin.

Kondisi Deskripsi
Nilai SQLSTATE

'xxyyy'

Nilai SQLSTATE spesifik
SQLEXCEPTION kelas SQLSTATE selain 00, 01, atau 02 > SQLWARNING
SQLSTATE class 01 NOT FOUND
SQLSTATE class 02 Berikut adalah contoh deklarasi kondisi:

BEGIN DECLARE constraint_violation CONDITION for SQLSTATE VALUE '23000'; AKHIR;

Contoh ini tidak realistis, karena biasanya pernyataan SQL yang dapat menyebabkan kondisi terjadi - dan juga pawang yang akan dipanggil jika kondisinya memang terjadi - juga akan tertutup dalam struktur BEGIN … END.

Tindakan handler dan efek handler

Jika suatu kondisi terjadi yang memanggil pawang, tindakan yang ditentukan oleh pawang dijalankan. Tindakan ini adalah pernyataan SQL, yang bisa menjadi pernyataan majemuk. Jika tindakan pawang selesai dengan sukses, maka efek handler akan dijalankan.Berikut adalah daftar tiga kemungkinan efek handler:

LANJUTKAN: Lanjutkan eksekusi segera setelah pernyataan yang menyebabkan pawang dipanggil.

  • EXIT: Lanjutkan eksekusi setelah pernyataan majemuk yang berisi handler.
  • UNDO: Batalkan hasil pernyataan sebelumnya dalam pernyataan majemuk lalu lanjutkan eksekusi setelah pernyataan yang berisi handler.

  • Jika pawang dapat memperbaiki masalah apa pun yang dipanggil pawang, maka efek LANJUTKAN mungkin sesuai. Efek EXIT mungkin sesuai jika pawang tidak memperbaiki masalah, namun perubahan yang dibuat pada pernyataan senyawa tidak perlu dibatalkan. Efek UNDO sesuai jika Anda ingin mengembalikan database ke keadaan sebelum pernyataan majemuk memulai eksekusi.

Perhatikan contoh berikut:

BEGIN ATOMIC DECLARE constraint_violation CONDITION UNTUK NILAI SQLSTATE '23000'; MENYATAKAN UNDO HANDLER UNTUK constraint_violation RESIGNAL; REPLACE INTO siswa (StudentID, Fname, Lname) NILAI (: sid,: sfname,: slname); REPLACE INTO daftar nama (ClassID, Class, StudentID) NILAI (: cid,: cname,: sid); AKHIR;

Jika salah satu dari pernyataan INSERT menyebabkan pelanggaran kendala, seperti mencoba menambahkan catatan dengan kunci primer yang menduplikasi kunci utama yang ada di tabel, SQLSTATE mengasumsikan nilai '23000', sehingga menetapkan kondisi constraint_violation ke nilai sebenarnya

Tindakan ini menyebabkan pengendali untuk UNDO melakukan perubahan yang telah dilakukan pada tabel manapun dengan perintah INSERT. Pernyataan RESIGNAL mentransfer kontrol kembali ke prosedur yang disebut prosedur pelaksana saat ini.

Jika kedua pernyataan INSERT berhasil dijalankan, eksekusi berlanjut dengan pernyataan setelah kata kunci END.

Kata kunci ATOMIC diwajibkan setiap kali efek pawang adalah UNDO. Ini bukan kasus penangan yang efeknya adalah LANJUTKAN atau EXIT.

Bagaimana Menangani Kondisi SQL - dummies

Pilihan Editor

Bagaimana Menyediakan Dokumen dengan CSS3 - dummies

Bagaimana Menyediakan Dokumen dengan CSS3 - dummies

Menggunakan CSS3 untuk membuat garis besar dokumen berguna bila halaman berisi banyak materi dan Anda ingin pengguna menavigasi dengan mudah. Garis besar bergantung pada berbagai tag yang Anda berikan. Metode pembuatan dokumen saat ini adalah menggunakan tag sampai . Pendekatan ini bekerja dengan baik ...

Cara Mendaftar untuk Akun Google - dummies

Cara Mendaftar untuk Akun Google - dummies

Pembuat google Page menyediakan alat canggih yang memungkinkan bahkan halaman desain perancang pemula Sebelum Anda dapat menggunakan Google Page Creator untuk membuat halaman Web Anda sendiri, Anda harus mendaftar ke akun Google. Untuk mendaftar dan memulai membangun situs Web, ikuti langkah-langkah ini:

Bagaimana mengedarkan tepi dan membuat beberapa kolom dengan CSS3 - dummies

Bagaimana mengedarkan tepi dan membuat beberapa kolom dengan CSS3 - dummies

Daripada memiliki untuk menggunakan hingga empat gambar terpisah untuk memberi ilusi bentuk melengkung di situs Anda, dengan CSS3 Anda sekarang dapat membuat wadah dengan sudut melengkung! Inilah kodenya, yang memiliki deklarasi CSS3 yang didukung penuh di bagian atas diikuti oleh duplikat yang diawali untuk browser lainnya: #box {border-radius: 20px; ...

Pilihan Editor

PHP & MySQL For Dummies Cheat Sheet - dummies

PHP & MySQL For Dummies Cheat Sheet - dummies

Saat menulis program PHP untuk membuat aplikasi database Web Anda dan berkomunikasi Dengan database MySQL, Anda memiliki banyak hal yang perlu diingat. Anda harus mengeja kode dengan benar dan menggunakan sintaks yang sempurna. Lembar Cheat ini memberikan referensi untuk melihat secara cepat sintaks yang benar untuk kode yang paling sering Anda gunakan.

Gunakan kembali Kode di Program PHP melalui Fungsi - dummies

Gunakan kembali Kode di Program PHP melalui Fungsi - dummies

Anda dapat, dengan bantuan sebuah auto_prepend_file, buat sebuah fungsi file yang secara otomatis disertakan dalam semua program PHP Anda. Fungsi ini mungkin sesuatu yang sederhana seperti memulai sesi atau serumit fungsi login keseluruhan. Setiap kali Anda membutuhkan atau berpikir bahwa Anda perlu memiliki fungsi di lebih dari satu file, ...

Memecahkan skrip PHP - dummies

Memecahkan skrip PHP - dummies

Anda tidak dapat menulis skrip tanpa membuat kesalahan tertentu. Caranya adalah dengan melatih diri untuk mengenalinya, putar mata Anda, katakan, "Tidak lagi," dan perbaiki saja. Satu pesan kesalahan yang akan Anda lihat berkali-kali adalah Parse error: parse error in c: test. php on line 7 Ini adalah cara PHP untuk mengatakan "Hah? "Artinya ...

Pilihan Editor

Bagaimana Membangun Kampanye Otomasi Pemasaran untuk Memimpin Memimpin Memelihara - dummies

Bagaimana Membangun Kampanye Otomasi Pemasaran untuk Memimpin Memimpin Memelihara - dummies

Anda dapat memberdayakan tenaga penjualan dengan mengasuh program otomasi pemasaran untuk membantu mereka menjadi lebih efektif dengan waktu mereka. Berikut adalah beberapa item yang perlu dipertimbangkan sebelum Anda membuat program pengasuhan yang spesifik ini: Segmentasi / otomasi: Anda perlu menyiapkan cara agar penjualan mengarah ke program tetes dalam Customer Relationship Management ...

Bagaimana Membangun Kampanye Pemasaran Otomatis untuk Penjualan Dingin Memimpin - dummies

Bagaimana Membangun Kampanye Pemasaran Otomatis untuk Penjualan Dingin Memimpin - dummies

Kampanye pemasaran otomatis pertama Anda harus membangun penjualan setelah menghidupkan pemberdayaan penjualan harus dirancang untuk menangkap dan memelihara prospek yang tidak dapat dicapai penjualan melalui proses penjualan. Prospek ini biasanya jatuh melalui celah-celah dan tidak pernah terdengar lagi. Banyak artikel yang mencakup keefektifan penjualan merujuk pada statistik bahwa ...

Bagaimana Membangun Kampanye Otomasi Pemasaran Memimpin Bersih Memimpin Baru - dummies

Bagaimana Membangun Kampanye Otomasi Pemasaran Memimpin Bersih Memimpin Baru - dummies

Tujuan jaring baru memimpin memupuk program otomasi pemasaran adalah untuk mengambil keputusan baru dari pertunangan pertamanya untuk menjadi timbal penjualan yang siap. Saat membangun program pengasuhan utama bersih pertama, gunakan daftar periksa berikut untuk memastikan bahwa Anda memiliki semua yang Anda butuhkan untuk membuat program hebat: Konten: Anda ...