DELIMITER // Apakah peranan yang dimainkan dalam pencetus MySQL?

WBOY
Lepaskan: 2023-08-26 10:41:07
ke hadapan
2301 orang telah melayarinya

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)
Salin selepas log masuk

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 ;
Salin selepas log masuk

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)
Salin selepas log masuk

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

mysql> select *from EmployeeTable;
Salin selepas log masuk
Salin selepas log masuk

Berikut adalah outputnya.

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

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)
Salin selepas log masuk

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)
Salin selepas log masuk

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

mysql> select *from EmployeeTable;
Salin selepas log masuk
Salin selepas log masuk

Berikut adalah outputnya.

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

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!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!