Rumah >pangkalan data >tutorial mysql >DELIMITER // Apakah peranan yang dimainkan dalam pencetus MySQL?

DELIMITER // Apakah peranan yang dimainkan dalam pencetus MySQL?

WBOY
WBOYke hadapan
2023-08-26 10:41:072332semak imbas

DELIMITER // 在 MySQL 的触发器中起什么作用?

DELIMITER // boleh digunakan untuk menukar koma bertitik (;) bagi pernyataan kepada //. Kini anda boleh menulis berbilang kenyataan menggunakan koma bertitik dalam pencetus.

Ini ialah demo pencetus. Dalam contoh ini, apabila anda memasukkan Gaji Pekerja kurang daripada 1000, ia akan lalai kepada 10000.

Mula-mula, mari buat jadual. Pertanyaan untuk mencipta jadual adalah seperti berikut -

mysql> create table EmployeeTable
-> (
-> EmployeeId int,
-> EmployeeName varchar(100),
-> EmployeeSalary float
-> );
Query OK, 0 rows affected (0.76 sec)

Selepas mencipta jadual, anda perlu mencipta pencetus pada arahan sisipan. Pertanyaan untuk mencipta pencetus adalah seperti berikut.

mysql> delimiter //
mysql> create trigger CheckSalary before insert on EmployeeTable
-> for each row if new.EmployeeSalary < 1000 then set
-> new.EmployeeSalary=10000;
-> end if;
-> //
Query OK, 0 rows affected (0.40 sec)
mysql> delimiter ;

Kini anda boleh menggunakan arahan sisip untuk menyemak pencetus. Jika Gaji Pekerja yang dimasukkan kurang daripada 1000, tiada ralat akan muncul tetapi ia akan menyimpan nilai lalai, yang saya berikan ialah 10000.

Pertanyaan untuk memasukkan rekod adalah seperti berikut -

mysql> insert into EmployeeTable values(1,&#39;Carol&#39;,500);
Query OK, 1 row affected (0.25 sec)

Sekarang gunakan kenyataan pilih untuk menyemak semua rekod dalam jadual. Pertanyaannya adalah seperti berikut.

mysql> select *from EmployeeTable;

Berikut adalah outputnya.

+------------+--------------+----------------+
| EmployeeId | EmployeeName | EmployeeSalary |
+------------+--------------+----------------+
| 1          | Carol        | 10000          |
+------------+--------------+----------------+
1 row in set (0.00 sec)

Jika anda memasukkan 1000 atau lebih, hanya nombor anda akan dipaparkan. Saya telah memadamkan rekod sebelumnya daripada jadual menggunakan perintah truncate.

mysql> truncate table EmployeeTable;
Query OK, 0 rows affected (1.44 sec)

Pertanyaan untuk memasukkan rekod dalam jadual.

mysql> insert into EmployeeTable values(2,&#39;Bob&#39;,1000);
Query OK, 1 row affected (0.14 sec)

mysql> insert into EmployeeTable values(3,&#39;Carol&#39;,2500);
Query OK, 1 row affected (0.19 sec)

Ini adalah pertanyaan yang menggunakan pernyataan pilih untuk menyemak semua rekod dalam jadual.

mysql> select *from EmployeeTable;

Berikut adalah outputnya.

+------------+--------------+----------------+
| EmployeeId | EmployeeName | EmployeeSalary |
+------------+--------------+----------------+
| 2          | Bob          | 1000           |
| 3          | Carol        | 2500           |
+------------+--------------+----------------+
2 rows in set (0.00 sec)

Tengok contoh output di atas, Gaji Pekerja lebih besar atau sama dengan 1000. Ini akan memberi anda gaji. Ingat, jika kurang daripada 1000, nilai lalai ditetapkan kepada 10000.

Atas ialah kandungan terperinci DELIMITER // Apakah peranan yang dimainkan dalam pencetus MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam