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

เกิดอะไรขึ้นถ้าเตรียมคำสั่ง (prepare) ชื่อซ้ำโดยไม่ deallocate ตัวเก่า

MySQL จัดการ prepared statement ชื่อซ้ำอัตโนมัติ

ใน MySQL สามารถเตรียมคำสั่ง (prepare statement) ด้วยชื่อเดียวกันโดยไม่ต้อง deallocate ตัวเก่าก่อนได้ เพราะ MySQL จะ drop prepared statements อัตโนมัติ เมื่อ:

  • มีการนิยามใหม่ (redefined) ด้วยชื่อเดียวกัน
  • ปิดการเชื่อมต่อกับเซิร์ฟเวอร์

กล่าวคือ สามารถใช้ชื่อเดิมสำหรับ prepared statements ได้โดยไม่ต้อง deallocate อย่างชัดเจน แต่ เพื่อปล่อยหน่วยความจำฝั่งเซิร์ฟเวอร์ ควร deallocate ให้ชัดเจน

คำสั่ง DEALLOCATE:

DEALLOCATE PREPARE statement_name;

DROP PREPARE เป็น synonym สำหรับ deallocate

ตัวอย่าง:

mysql> DROP PREPARE stmt11;
Query OK, 0 rows affected (0.00 sec)