Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

DELIMITER // ทำอะไรในทริกเกอร์ใน MySQL?


DELIMITER // สามารถใช้เพื่อเปลี่ยนคำสั่งจากเซมิโคลอน (;) เป็น // ตอนนี้คุณสามารถเขียนหลายคำสั่งด้วยเครื่องหมายอัฒภาคในทริกเกอร์

นี่คือตัวอย่างทริกเกอร์ ในตัวอย่างนี้เมื่อใดก็ตามที่คุณป้อน EmployeeSalary น้อยกว่า 1,000 ค่า default จะตั้งไว้ที่ 10,000

ขั้นแรก ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้ -

mysql> สร้างตาราง EmployeeTable-> (-> EmployeeId int,-> EmployeeName varchar(100),-> EmployeeSalary float-> ); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.76 วินาที)

หลังจากสร้างตารางแล้ว คุณต้องสร้างทริกเกอร์บนคำสั่ง insert แบบสอบถามเพื่อสร้างทริกเกอร์มีดังนี้

mysql> ตัวคั่น //mysql> สร้างทริกเกอร์ CheckSalary ก่อนแทรก EmployeeTable-> สำหรับแต่ละแถวถ้า new.EmployeeSalary <1000 แล้ว set-> new.EmployeeSalary=10000;-> end if;-> //Query OK, 0 แถวได้รับผลกระทบ (0.40 วินาที)mysql> ตัวคั่น;

ตอนนี้คุณสามารถตรวจสอบทริกเกอร์ได้โดยใช้คำสั่งแทรก หากคุณใส่เงินเดือนพนักงานน้อยกว่า 1,000 จะไม่มีข้อผิดพลาดใดๆ แต่จะเก็บค่าเริ่มต้นที่ฉันได้ให้ไว้ 10,000

แบบสอบถามที่จะแทรกบันทึกมีดังนี้ -

mysql> แทรกลงในค่า EmployeeTable (1,'Carol',500) แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.25 วินาที)

ตอนนี้ตรวจสอบระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้

mysql> เลือก *จาก EmployeeTable;

ต่อไปนี้เป็นผลลัพธ์

<ก่อนหน้า>+-----------+--------------+----------------+| รหัสพนักงาน | ชื่อพนักงาน | เงินเดือนพนักงาน |+------------+--------------+----------------+| 1 | แครอล | 10000 |+-----------+---------------------+----------------+1 แถว ในชุด (0.00 วินาที)

หากคุณใส่ 1,000 หรือมากกว่า 1,000 มันจะแสดงเฉพาะตัวเลขของคุณเท่านั้น ฉันลบบันทึกก่อนหน้าออกจากตารางโดยใช้คำสั่งตัดทอน

mysql> ตัดทอนตาราง EmployeeTable; Query OK, 0 แถวได้รับผลกระทบ (1.44 วินาที)

แบบสอบถามเพื่อแทรกระเบียนในตาราง

mysql> แทรกลงในค่า EmployeeTable (2,'Bob',1000); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที) mysql> แทรกลงในค่า EmployeeTable (3,'Carol',2500); แบบสอบถามตกลง 1 แถว ได้รับผลกระทบ (0.19 วินาที)

นี่คือแบบสอบถามเพื่อตรวจสอบระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select

mysql> เลือก *จาก EmployeeTable;

ต่อไปนี้เป็นผลลัพธ์

<ก่อนหน้า>+-----------+--------------+----------------+| รหัสพนักงาน | ชื่อพนักงาน | เงินเดือนพนักงาน |+------------+--------------+----------------+| 2 | บ๊อบ | 1000 || 3 | แครอล | 2500 |+-----------+--------------+----------------+2 แถว ในชุด (0.00 วินาที)

ดูตัวอย่างผลลัพธ์ด้านบน เงินเดือนพนักงาน มากกว่าหรือเท่ากับ 1,000 สิ่งนี้จะให้เงินเดือนของคุณ โปรดจำไว้ว่า หากน้อยกว่า 1,000 ค่าเริ่มต้นจะถูกตั้งไว้ที่ 10,000