ฉันใช้ wampserver 2.2 เมื่อฉันต้องการลบระเบียนทั้งหมดของตารางใน phpMyAdmin (เลือกทั้งหมด) มันจะลบเพียงระเบียนเดียวไม่ใช่ทุกระเบียน เหตุใดจึงไม่ลบบันทึกทั้งหมด
SHIFT-DEL
ฉันใช้ wampserver 2.2 เมื่อฉันต้องการลบระเบียนทั้งหมดของตารางใน phpMyAdmin (เลือกทั้งหมด) มันจะลบเพียงระเบียนเดียวไม่ใช่ทุกระเบียน เหตุใดจึงไม่ลบบันทึกทั้งหมด
SHIFT-DEL
คำตอบ:
ไปที่โครงสร้าง db -> ของคุณและว่างเปล่าในตารางที่ต้องการ ดูที่นี่:
คุณมี 2 ตัวเลือกdelete
และtruncate
:
delete from mytable
การดำเนินการนี้จะลบเนื้อหาทั้งหมดของตารางโดยไม่รีเซ็ตรหัสการสร้างอัตโนมัติกระบวนการนี้ช้ามาก หากคุณต้องการลบบันทึกเฉพาะให้ผนวก where clause ที่ท้าย
truncate myTable
การดำเนินการนี้จะรีเซ็ตตารางนั่นคือฟิลด์ที่เพิ่มขึ้นอัตโนมัติทั้งหมดจะถูกรีเซ็ต DDL และมันเร็วมาก คุณไม่สามารถลบระเบียนที่เฉพาะเจาะจงใด ๆ truncate
ผ่านทาง
ไปที่แท็บ Sql เรียกใช้แบบสอบถามด้านล่าง:
delete from tableName;
ลบ : จะลบแถวทั้งหมดจากตารางของคุณ การแทรกถัดไปจะใช้รหัสการเพิ่มอัตโนมัติถัดไป
หรือ
truncate tableName;
ตัดทอน : จะลบแถวออกจากตารางของคุณด้วย แต่จะเริ่มจากแถวใหม่ด้วย 1
บล็อกโดยละเอียดพร้อมตัวอย่าง: http://sforsuresh.in/phpmyadmin-deleting-rows-mysql-table/
ใช้แบบสอบถามนี้:
DELETE FROM tableName;
หมายเหตุ: หากต้องการลบระเบียนเฉพาะบางรายการคุณสามารถกำหนดเงื่อนไขในส่วนคำสั่งในแบบสอบถามได้ด้วย
หรือคุณสามารถใช้แบบสอบถามนี้ได้เช่นกัน:
truncate tableName;
โปรดจำไว้ว่าคุณไม่ควรมีความสัมพันธ์กับโต๊ะอื่น ๆ หากมีข้อ จำกัด ของคีย์ต่างประเทศในตารางระเบียนเหล่านั้นจะไม่ถูกลบและจะทำให้เกิดข้อผิดพลาด
คุณสามารถลบแถวทั้งหมดด้วยคำสั่งนี้ แต่จำไว้อย่างหนึ่งว่าเมื่อคุณเรียกใช้คำสั่ง truncate แล้วคุณจะไม่สามารถย้อนกลับได้
truncate tableName;
'Truncate tableName' จะล้มเหลวบนตารางที่มีการกำหนดข้อ จำกัด ของคีย์ นอกจากนี้ยังจะไม่จัดทำดัชนีAUTO_INCREMENT
ค่าตารางอีกครั้ง ให้ลบรายการตารางทั้งหมดและรีเซ็ตการจัดทำดัชนีกลับเป็น 1 โดยใช้ไวยากรณ์ sql นี้:
DELETE FROM tableName;
ALTER TABLE tableName AUTO_INCREMENT = 1
ข้อเท็จจริงที่น่าสนใจ
ฉันแน่ใจว่า TRUNCATE จะทำงานได้ดีขึ้นเสมอ แต่ในกรณีของฉันสำหรับ db ที่มีตารางประมาณ 30 ตารางที่มีคีย์ต่างประเทศซึ่งมีเพียงไม่กี่แถวเท่านั้นใช้เวลาประมาณ 12 วินาทีในการตัดทอนตารางทั้งหมดซึ่งต่างจากเพียงไม่กี่ร้อยมิลลิวินาที เพื่อลบแถว การตั้งค่าการเพิ่มอัตโนมัติจะเพิ่มผลรวมประมาณหนึ่งวินาที แต่ก็ยังดีกว่ามาก
ดังนั้นฉันขอแนะนำให้ลองทั้งสองอย่างดูว่าตัวไหนทำงานได้เร็วกว่าสำหรับกรณีของคุณ
เขียนคำค้นหา: truncate 'Your_table_name';
หรือคุณสามารถทำได้โดยใช้แบบสอบถาม sql:
คลิกที่SQLนำเสนอพร้อมโครงสร้างด้านข้าง
TRUNCATE tablename; //offers better performance, but used only when all entries need to be cleared
or
DELETE FROM tablename; //returns the number of rows deleted
DELETE FROM tableName