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

การใช้อนุประโยค ON COMPLETION PRESERVE ขณะสร้างกิจกรรมคืออะไร


อย่างที่เราทราบดีว่ากิจกรรมจะถูกยกเลิกโดยอัตโนมัติเมื่อสิ้นสุด และเราไม่สามารถดูจากคำสั่ง SHOW EVENTS ได้ หากต้องการเปลี่ยนพฤติกรรมดังกล่าว เราสามารถใช้ ON COMPLETION PRESERVE ขณะสร้างกิจกรรมได้ สามารถเข้าใจได้จากตัวอย่างต่อไปนี้ −

ตัวอย่าง

mysql> สร้างตาราง event_messages (ID INT ไม่ใช่ NULL คีย์หลัก AUTO_INCREMENT, MESSAGE VARCHAR (255) ไม่ใช่ NULL, Generated_at DATETIME NOT NULL) เคียวรีตกลง 0 แถวได้รับผลกระทบ (0.61 วินาที)

แบบสอบถามด้านล่างจะสร้างเหตุการณ์โดยไม่ต้องใช้ ON COMPLETION PRESERVE ดังนั้นจึงจะไม่ปรากฏในผลลัพธ์ของ SHOW EVENTS FROM db_name สอบถามค่ะ

mysql> CREATE EVENT testing_event_without_Preserves ON SCHEDULE AT CURRENT_TIMESTAMP DO INSERT INTO event_messages(message,generated_at) Values('Without Preserve',NOW());Query OK, 0 แถวที่ได้รับผลกระทบ (0.00 วินาที)mysql> เลือก * จาก event_message +----+------------------------------------------------------+| ไอดี | ข้อความ | Generated_at |+----+-----------+---------------------------+| 1 | ไม่มีอนุรักษ์ | 2017-11-22 20:32:13 |+-----------+-----------------+------------ --------+1 แถวในชุด (0.00 วินาที)mysql> แสดงกิจกรรมจากการสืบค้น\G**************************** * 1. แถว *************************** Db:query ชื่อ:testing_event5 Definer:root@localhost Time zone:SYSTEM Type:ONE TIME ดำเนินการเมื่อ:2017-11-22 17:09:11 ค่าช่วงเวลา:ช่วงเวลา NULL ฟิลด์:NULL เริ่มต้น:NULL สิ้นสุด:NULL สถานะ:DISABLED ผู้ริเริ่ม:0character_set_client:cp850collation_connection:cp850_general_ci การเปรียบเทียบฐานข้อมูล:latin1_swedish_ci1 แถวในชุด (0.00 วินาที) ก่อน> 

ข้อความค้นหาด้านล่างจะสร้างกิจกรรมโดยใช้ ON COMPLETION PRESERVE ดังนั้นจึงสามารถเห็นได้ในผลลัพธ์ของ SHOW EVENTS FROM db_name สอบถามค่ะ

mysql> สร้าง EVENT testing_event_with_Preserves ON SCHEDULE AT CURRENT_TIMESTAMP ON COMPLETION PRESERVE DO INSERT INTO event_messages(message,generated_at) Values('With Preserve',NOW());Query OK, 0 แถวที่ได้รับผลกระทบ (0.00 วินาที) เลือก *mysql จาก event_messages;+----+---------------------------------------+ | ไอดี | ข้อความ | Generated_at |+----+-----------+---------------------------+| 1 | ไม่มีอนุรักษ์ | 2017-11-22 20:32:13 || 2 | พร้อมถนอม | 2017-11-22 20:35:12 |+----+-----------------+--------------------- --------+2 แถวในชุด (0.00 วินาที) mysql> แสดงเหตุการณ์จากการสืบค้น\G**************************** * 1. แถว *************************** Db:query ชื่อ:testing_event5 Definer:root@localhost Time zone:SYSTEM Type:ONE TIME ดำเนินการเมื่อ:2017-11-22 17:09:11 ค่าช่วงเวลา:NULL Interval field:NULL Starts:NULL Ends:NULL Status:DISABLED Originator:0character_set_client:cp850collation_connection:cp850_general_ci การเปรียบเทียบฐานข้อมูล:latin1_swedish_ci********* ****************** 2. แถว *************************** Db:แบบสอบถาม ชื่อ:testing_event_with_Preserves Definer:root@localhost Time zone:SYSTEM Type:ONE TIME Execute at:2017-11-22 20:35:12 Interval value:NULL Interval field:NULL Starts:NULL สิ้นสุด:NULL สถานะ:ปิดการใช้งาน ผู้ริเริ่ม:0character_set_client:cp850collation_connection:cp850_general_ci การเปรียบเทียบฐานข้อมูล:latin1_swedish_ci2 แถวในชุด (0.00 วินาที)