


Bolehkah MySQL Triggers Mimic CHECK Constraints dengan Mengembalikan Ralat?
Menggunakan Pencetus MySQL untuk Meniru Kekangan CHECK
MySQL, tidak seperti RDBMS lain, membolehkan pemahaman tentang kekangan CHECK tetapi gagal melaksanakannya. Had ini memerlukan penerokaan pendekatan alternatif, termasuk penggunaan pencetus. Walau bagaimanapun, kebanyakan pencetus ini hanya menetapkan nilai lalai dan bukannya mengembalikan ralat.
Bolehkah Pencetus Dibina untuk Mengembalikan Ralat Apabila Syarat Tidak Dipenuhi?
Memang, ia adalah mungkin untuk membina pencetus yang mengembalikan ralat jika syarat tertentu tidak dipenuhi. Dengan menggunakan pernyataan SIGNAL dan SET MESSAGE_TEXT, pencetus boleh mencontohi kekangan CHECK dengan berkesan.
Pelaksanaan Pencetus
Pertimbangkan pencetus berikut, yang menyerupai kekangan CHECK yang memastikan medan "bulan" tidak boleh melebihi 12:
delimiter $$ create trigger chk_stats before update on stats for each row begin if new.month>12 then SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Cannot add or update row: only'; end if; end; $$
Pencetus ini beroperasi sebelum operasi kemas kini dan menyemak nilai baharu medan "bulan". Jika nilai melebihi 12, ia menimbulkan ralat dengan SQLSTATE '45000' dan mesej "Tidak boleh menambah atau mengemas kini baris: sahaja."
Pencetus untuk Sisipan
Pencetus yang serupa boleh digunakan untuk operasi sisipan:
delimiter $$ create trigger chk_stats before insert on stats for each row begin if new.month>12 then SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Cannot add or update row: only'; end if; end; $$
Dengan menggunakan mencetuskan dengan cara ini, anda boleh meniru fungsi kekangan CHECK dalam MySQL dengan berkesan, memastikan integriti data dan menghalang nilai tidak sah daripada dimasukkan atau dikemas kini.
Atas ialah kandungan terperinci Bolehkah MySQL Triggers Mimic CHECK Constraints dengan Mengembalikan Ralat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Kurangkan penggunaan memori MySQL di Docker

Bagaimana anda mengubah jadual di MySQL menggunakan pernyataan Alter Table?

Cara menyelesaikan masalah MySQL tidak dapat membuka perpustakaan bersama

Jalankan MySQL di Linux (dengan/tanpa bekas podman dengan phpmyadmin)

Apa itu SQLite? Gambaran Keseluruhan Komprehensif

Menjalankan Pelbagai Versi MySQL di MacOS: Panduan Langkah demi Langkah

Bagaimana saya mengkonfigurasi penyulitan SSL/TLS untuk sambungan MySQL?

Apakah beberapa alat GUI MySQL yang popular (mis., MySQL Workbench, phpmyadmin)?
