PostgreSQL ลบ/ยกเลิกฐานข้อมูลโดยใช้บรรทัดคำสั่ง

⚡ สรุปอย่างชาญฉลาด

PostgreSQL คำสั่ง DROP DATABASE จะลบฐานข้อมูลอย่างถาวร รวมถึงรายการในแคตตาล็อกและไฟล์ข้อมูลทั้งหมด คุณสามารถเรียกใช้คำสั่งนี้จากเชลล์ psql ลบฐานข้อมูลด้วยตนเองใน pgAdmin หรือใช้คำสั่ง dropdb เพื่อลบฐานข้อมูลจากระยะไกลได้

  • ⚠️ การดำเนินการถาวร: คำสั่ง DROP DATABASE จะลบรายการในแคตตาล็อกและไดเร็กทอรีข้อมูลทั้งหมด ดังนั้นจึงไม่สามารถยกเลิกการดำเนินการได้
  • 🔒 สำหรับเจ้าของเท่านั้น: เฉพาะเจ้าของฐานข้อมูลเท่านั้นที่สามารถลบฐานข้อมูลได้ และไม่มีเซสชันใดที่กำลังใช้งานอยู่สามารถเชื่อมต่อกับฐานข้อมูลเป้าหมายได้
  • ???? SQL Shell: ใน psql ให้รันคำสั่ง DROP DATABASE name หลังจากเชื่อมต่อกับฐานข้อมูลอื่นแล้ว จากนั้นใช้ \l เพื่อยืนยันการลบ
  • 🛡️ เงื่อนไข IF EXISTS: การเพิ่มคำสั่ง IF EXISTS จะแสดงคำเตือนแทนที่จะเป็นข้อผิดพลาดเมื่อฐานข้อมูลไม่มีอยู่จริง
  • 🖱️ ส่วนติดต่อผู้ใช้แบบกราฟิก (GUI) ของ pgAdmin: คลิกขวาที่ฐานข้อมูลใน Object Tree เลือก Delete/Drop แล้วยืนยันการลบออก
  • 🌐 คำสั่ง dropdb: ยูทิลิตี้ dropdb ซึ่งเป็นคำสั่งบรรทัดคำสั่ง ใช้สำหรับลบฐานข้อมูลจากระยะไกล โดยมีตัวเลือกสำหรับโฮสต์ พอร์ต และการยืนยัน

PostgreSQL วาง/ลบฐานข้อมูล

วางฐานข้อมูลใน PostgreSQL

การขอ วางฐานข้อมูล in PostgreSQL เป็นคำสั่งให้ลบรายการแค็ตตาล็อกและไดเร็กทอรีข้อมูลทั้งหมดอย่างถาวร เจ้าของฐานข้อมูลสามารถดำเนินการคำสั่งนี้ได้เท่านั้น ไม่สามารถดำเนินการได้ในขณะที่มีคนเชื่อมต่อกับฐานข้อมูลเป้าหมาย คุณต้องเชื่อมต่อกับฐานข้อมูลอื่นเพื่อดำเนินการคำสั่ง DROP DATABASE

ดังนั้นคุณควรระมัดระวังเป็นพิเศษเมื่อดำเนินการนี้

PostgreSQL วางไวยากรณ์ฐานข้อมูล:

DROP DATABASE [IF EXISTS] name;

Here:-

  • IF EXISTS: นี่เป็นพารามิเตอร์เสริม ในกรณีที่ฐานข้อมูลไม่มีอยู่ คำเตือนจะแสดงแทนข้อผิดพลาด
  • name: ระบุชื่อ DB ที่คุณต้องการทิ้ง

มาดู PostgreSQL วางตัวอย่างบรรทัดคำสั่งฐานข้อมูลในการดำเนินการ

PostgreSQL วางฐานข้อมูลโดยใช้ SQL Shell (บรรทัดคำสั่ง)

ด้านล่างนี้เป็นกระบวนการทีละขั้นตอนในการวางฐานข้อมูลในบรรทัดคำสั่ง Postgres:

ขั้นตอน 1) ใช้คำสั่ง \l เพื่อตรวจสอบฐานข้อมูลที่มีอยู่ในปัจจุบัน

PostgreSQL วางฐานข้อมูลโดยใช้ SQL Shell

ขั้นตอน 2) หากต้องการปล่อยฐานข้อมูลใน Postgres ให้ป้อนคำสั่ง

drop database guru99

ใช้คำสั่ง \l เพื่อตรวจสอบว่า DB ถูกลบไปแล้วหรือไม่

PostgreSQL วางฐานข้อมูลโดยใช้ SQL Shell

ขั้นตอน 3) ลองปล่อยฐานข้อมูลเดิมอีกครั้ง คุณจะได้รับข้อผิดพลาด

PostgreSQL วางฐานข้อมูลโดยใช้ SQL Shell

ขั้นตอน 4) วางฐานข้อมูลด้วยคำสั่ง IF ที่มีอยู่แล้วคุณจะได้รับคำเตือน

drop database IF EXISTS guru99

PostgreSQL วางฐานข้อมูลโดยใช้ SQL Shell

PostgreSQL วางฐานข้อมูล PgAdmin (GUI)

ขั้นตอน 1) คลิกขวาที่ฐานข้อมูล “guru99” แล้วคลิก “ลบ/วาง”

PostgreSQL วางฐานข้อมูล PgAdmin

ขั้นตอน 2) คลิกตกลงในป๊อปอัปการยืนยัน

PostgreSQL วางฐานข้อมูล PgAdmin

ฐานข้อมูลถูกลบ

คำสั่ง dropdb

คำสั่ง dropdb ช่วยให้คุณสามารถลบฐานข้อมูลได้ PostgreSQL จากระยะไกล แต่ผู้ใช้จะต้องเป็นเจ้าของฐานข้อมูลจึงจะสามารถใช้งานได้ PostgreSQL คำสั่งลบฐานข้อมูลเพื่อลบฐานข้อมูลนั้น

ไวยากรณ์:

dropdb [option...] dbname
ตัวเลือกเสริม (Option) Descriptไอออน
-e คำสั่ง Echo ที่ dropdb สร้างและส่งไปยังเซิร์ฟเวอร์
-i แสดงข้อความแจ้งเตือนก่อนดำเนินการทำลายล้างใดๆ
-V ใช้ตัวเลือกนี้เพื่อพิมพ์เวอร์ชัน dropdb
-ช่วยด้วย ให้ความช่วยเหลือเกี่ยวกับอาร์กิวเมนต์บรรทัดคำสั่ง dropdb
-h โฮสต์ ช่วยให้คุณระบุชื่อโฮสต์ของระบบที่เซิร์ฟเวอร์กำลังทำงานอยู่
-p พอร์ต ตัวเลือกนี้ช่วยให้คุณระบุพอร์ต TCP หรือนามสกุลไฟล์ซ็อกเก็ตโดเมน Unix ในเครื่องที่เซิร์ฟเวอร์ใช้ในการสร้างการเชื่อมต่อได้
–ถ้ามีอยู่ หากฐานข้อมูลไม่มีอยู่ ระบบจะแสดงข้อความแจ้งเตือนแทนที่จะแสดงข้อผิดพลาด
-U ชื่อผู้ใช้ ชื่อผู้ใช้เพื่อเชื่อมต่อเป็น
-w ใช้ตัวเลือกนี้หากคุณไม่ต้องการให้แจ้งรหัสผ่าน
-W ใช้พารามิเตอร์นี้เพื่อขอรหัสผ่านก่อนทำการวางping ฐานข้อมูล
–maintenance-db=dbname ระบุชื่อของฐานข้อมูลที่จะเชื่อมต่อเพื่อวางฐานข้อมูลเป้าหมาย

PostgreSQL ตัวอย่างฐานข้อมูล DROP

เราต้องการทำลายฐานข้อมูล guru99 ด้วยความช่วยเหลือของเซิร์ฟเวอร์บนโฮสต์โรม พอร์ต 4565 พร้อมการตรวจสอบ และคุณต้องใช้ฐานข้อมูลดรอปต่อไปนี้ PostgreSQL คำสั่ง:

dropdb -p 4565 -h rome -i -e guru99

ฐานข้อมูล “guru99” จะถูกลบอย่างถาวร

คุณแน่ใจไหม? (ใช่/n) หากคุณเลือก y คุณก็สามารถทำได้

วางฐานข้อมูล guru99;

คำถามที่พบบ่อย

ไม่ การลบฐานข้อมูล (DROP DATABASE) จะลบไดเร็กทอรีข้อมูลอย่างถาวร ดังนั้นจึงไม่มีฟังก์ชันย้อนกลับในตัว การกู้คืนจะทำได้ก็ต่อเมื่อคุณมีข้อมูลสำรองก่อนหน้า ไฟล์ดัมพ์ หรือการกู้คืน ณ จุดเวลาใดเวลาหนึ่งที่ตั้งค่าไว้ก่อนการลบเท่านั้น

ข้อผิดพลาดนี้หมายความว่ามีการเชื่อมต่อเซสชันที่ใช้งานอยู่ โปรดตัดการเชื่อมต่อ หรือเรียกใช้คำสั่ง pg_terminate_backend() กับรหัสกระบวนการของเซสชันเหล่านั้นจากฐานข้อมูลอื่น จากนั้นลองลบฐานข้อมูลอีกครั้ง คุณไม่สามารถลบฐานข้อมูลที่คุณกำลังเชื่อมต่ออยู่ได้

คำสั่ง DROP DATABASE เป็นคำสั่ง SQL ที่ทำงานภายใน psql หรือ pgAdmin ส่วน dropdb เป็นยูทิลิตี้แบบบรรทัดคำสั่งที่ครอบคลุมคำสั่งนี้ ทำให้คุณสามารถลบฐานข้อมูลจากระยะไกลได้ พร้อมตัวเลือกสำหรับโฮสต์ พอร์ต และข้อความแจ้งเตือนเพื่อยืนยัน

AI สามารถสร้างคำสั่ง DROP DATABASE หรือ dropdb ที่ถูกต้อง เตือนให้คุณสำรองข้อมูลก่อน และเพิ่มเงื่อนไข IF EXISTS นอกจากนี้ยังสามารถแสดงรายการการเชื่อมต่อที่ใช้งานอยู่ซึ่งคุณต้องปิดก่อนทำการลบฐานข้อมูลได้อีกด้วยping.

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

สรุปโพสต์นี้ด้วย: