ตาราง BIN$QVJWGo6xxxxx แท้จริงแล้ว ก็คือ ตารางที่ถูกเรา Drop ทิ้งไป นั่นเอง
ตั้งแต่ Oracle Database 10g เป็นต้นมา การ Drop Table จะยังไม่ลบทิ้ง ออกจากฐานข้อมูล ของ ออราเคิล โดยทันที แม้ว่าจะเป็นคำสั่ง DDL ( Data Definition Language ) แต่ตารางที่ถูกลบนั้นจะถูกเปลี่ยนชื่อ (rename) เป็น ชื่ออื่น (ขึ้นต้นด้วย BIN$) เก็บเอาไว้ใน Recyclebin ของ ออราเคิล เอาไว้ก่อน ( ลักษณะเดัยวกับ recyclebin ของ Windows เลยครับ) เผื่อเอาไว้ กู้คืนกลับ ด้วยคำสั่ง FLAHBACK TABLE .. TO BEFORE DROP ; ซึ่งสอนไปแล้วในบทความก่อน
เราสามารถ ตรวจสอบ ว่าใน recyclebin มีอะไรที่ถูกลบแล้ว อยู่ข้างในบ้าง ถูกลบไปเมื่อไหร่ ชื่อก่อน และ หลังถูกลบ ชื่อว่าอะไร และ สามารถกู้คืน หรือ ลบทิ้งได้หรือไม่ โดยใช้ Query ดังนี้
SELECT object_name,original_name,type,
can_undrop as "UNDO",can_purge as "PURGE",droptime
FROM recyclebin ; |