TRUNCATE và DELETE ảnh ...
TRUNCATE và DELETE ảnh ...
Trong các hệ quản trị cơ sở dữ liệu như SQL Server, MySQL, PostgreSQL, và Oracle, các thao tác TRUNCATE và DELETE có những ảnh hưởng khác nhau đến cột Identity (cột tự động tăng).
SQL Server: TRUNCATE sẽ reset giá trị của cột Identity về giá trị ban đầu (seed value), trong khi DELETE không làm thay đổi giá trị Identity. Khi bạn thực hiện thao tác DELETE, giá trị Identity tiếp theo sẽ tiếp tục tăng từ giá trị cuối cùng, không bị reset.
PostgreSQL: Sử dụng TRUNCATE với tùy chọn RESTART IDENTITY sẽ reset giá trị của cột Identity về giá trị ban đầu. DELETE không ảnh hưởng đến giá trị Identity, giá trị tiếp theo của cột Identity sẽ tiếp tục tăng từ giá trị cuối cùng.
MySQL: TRUNCATE sẽ xóa tất cả các hàng trong bảng và reset giá trị auto-increment (tương đương với Identity trong các hệ quản trị khác) về 0 hoặc 1 (tùy thuộc vào cài đặt của hệ thống). DELETE xóa các hàng mà không ảnh hưởng đến giá trị auto-increment.
Oracle: Đối với Oracle, bạn có thể sử dụng ALTER TABLE để modify cột Identity sau khi xóa dữ liệu. Điều này cho phép reset giá trị Identity sau khi thực hiện DELETE. Oracle không hỗ trợ TRUNCATE để reset giá trị Identity như các hệ quản trị khác, nhưng bạn có thể sử dụng các lệnh ALTER TABLE để đạt được mục đích tương tự[.
Như vậy, TRUNCATE thường được sử dụng để xóa tất cả dữ liệu trong bảng và reset giá trị Identity về giá trị ban đầu, trong khi DELETE được sử dụng để xóa dữ liệu mà không ảnh hưởng đến giá trị Identity.
Citations:
https://bobcares.com/blog/truncate-restart-identity-postgres-command/
https://ca...
senior
Gợi ý câu hỏi phỏng vấn
Chưa có bình luận nào