Xóa tất cả các bản ghi trong bảng MYSQL trong phpMyAdmin


122

Tôi sử dụng wampserver 2.2. Khi tôi muốn xóa tất cả các bản ghi của một bảng trong phpMyAdmin (chọn tất cả), nó chỉ xóa một bản ghi không phải tất cả các bản ghi. Tại sao nó không xóa tất cả các bản ghi?


3
phụ thuộc vào truy vấn của bạn, bạn có thực thi như thế này không? DELETE FROM tableName
John Woo

Đánh dấu tên bảng và nhấnSHIFT-DEL
DevlshOne

Câu trả lời:


130

Chuyển đến cấu trúc db -> của bạn và làm trống trong bảng bắt buộc. Xem tại đây:

ảnh chụp màn hình này


167

Bạn có 2 lựa chọn deletetruncate:

  1. delete from mytable

    Thao tác này sẽ xóa tất cả nội dung của bảng, không gửi lại id autoincremental, quá trình này diễn ra rất chậm. Nếu bạn muốn xóa các bản ghi cụ thể, hãy thêm một mệnh đề where ở cuối.

  2. truncate myTable

    Điều này sẽ đặt lại bảng tức là tất cả các trường tăng dần tự động sẽ được đặt lại. Nó là một DDL và rất nhanh. Bạn không thể xóa bất kỳ bản ghi cụ thể nào thông qua truncate.


130

Chuyển đến tab Sql, chạy một trong các truy vấn dưới đây:

delete from tableName;

Xóa : sẽ xóa tất cả các hàng khỏi bảng của bạn. Lần chèn tiếp theo sẽ lấy id gia tăng tự động tiếp theo.

hoặc là

truncate tableName;

Cắt ngắn : cũng sẽ xóa các hàng khỏi bảng của bạn nhưng nó sẽ bắt đầu từ hàng mới với 1.

Một blog chi tiết với ví dụ: http://sforsuresh.in/phpmyadmin-deleting-rows-mysql-table/


27

Sử dụng truy vấn này:

DELETE FROM tableName;

Lưu ý: Để xóa một số bản ghi cụ thể, bạn cũng có thể đưa ra điều kiện trong mệnh đề where trong truy vấn.

HOẶC bạn cũng có thể sử dụng truy vấn này:

truncate tableName;

Cũng nên nhớ rằng bạn không nên có bất kỳ mối quan hệ nào với bảng khác. Nếu có bất kỳ ràng buộc khóa ngoại nào trong bảng thì bản ghi đó sẽ không bị xóa và sẽ gây ra lỗi.


19

Bạn có thể xóa tất cả các hàng bằng lệnh này, nhưng hãy nhớ một điều rằng khi bạn chạy lệnh truncate, bạn không thể khôi phục nó.

  truncate tableName;

11

'Xén bớt tableName' sẽ không thành công trên một bảng đã xác định ràng buộc khóa. Nó cũng sẽ không lập chỉ mục lại AUTO_INCREMENTgiá trị bảng . Thay vào đó, hãy Xóa tất cả các mục nhập trong bảng và đặt lại lập chỉ mục về 1 bằng cách sử dụng cú pháp sql sau:

DELETE FROM tableName;
ALTER TABLE tableName AUTO_INCREMENT = 1

4

Một thực tế thú vị.

Tôi chắc chắn TRUNCATE sẽ luôn hoạt động tốt hơn, nhưng trong trường hợp của tôi, đối với một db có khoảng 30 bảng có khóa ngoại, được điền chỉ với một vài hàng, mất khoảng 12 giây để TRUNCATE tất cả các bảng, trái ngược với chỉ vài trăm mili giây để XÓA các hàng. Đặt mức tăng tự động tổng cộng khoảng một giây, nhưng nó vẫn tốt hơn rất nhiều.

Vì vậy, tôi khuyên bạn nên thử cả hai, xem cái nào hoạt động nhanh hơn cho trường hợp của bạn.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.