Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mencegah Sisipan MySQL Berdasarkan Keadaan Menggunakan Pencetus?

Bagaimanakah Saya Boleh Mencegah Sisipan MySQL Berdasarkan Keadaan Menggunakan Pencetus?

Patricia Arquette
Patricia Arquetteasal
2025-01-16 18:40:11230semak imbas

How Can I Prevent MySQL Inserts Based on a Condition Using Triggers?

Mencegah Sisipan MySQL dengan Pencetus

Untuk mengelakkan memasukkan baris apabila syarat tertentu dipenuhi, seperti tarikh lahir yang ditetapkan pada masa hadapan , anda boleh membuat pencetus. Begini caranya:

CREATE TRIGGER foo BEFORE INSERT ON table
FOR EACH ROW
BEGIN
  IF NEW.birthdate > CURRENT_DATE() THEN
    SIGNAL SQLSTATE '45000';
  END IF;
END;

Membatalkan Sisipan

Untuk membatalkan sisipan dalam pencetus, gunakan sintaks SIGNAL SQLSTATE. Sebagai contoh, untuk menimbulkan ralat apabila tarikh lahir adalah pada masa hadapan, anda akan menggunakan:

SIGNAL SQLSTATE '45000';

Ini akan membuang pengecualian takrif pengguna yang tidak dikendalikan dan menghalang sisipan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencegah Sisipan MySQL Berdasarkan Keadaan Menggunakan Pencetus?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn