Posts tagged drop
Perbedaan DELETE, TRUNCATE dan DROP
0Berikut penjelasan singkat mengenai perbedaan penggunaan perintah Delete, Truncate dan Drop pada suatu table di oracle.
Delete
Perintah delete digunakan untuk menghapus semua atau beberapa record pada tabel. Jika kondisi WHERE diberikan maka perintah delete akan menghapus data sesuai dengan kondisi yang diberikan. Jika tidka ada kondisi yang diberikan maka seluruh data pada tabel akan dihapus.
Setelah perintah Delete kita harus melanjutkan dengan COMMIT untuk menyimpan perubahan secara permanen atau ROLLBACK untuk membatalkan perintah. Jika pada tebel yang diberikan perintah delete maka semua Trigger Delete akan dijalankan.
Berikut contoh perintah delete pada tabel employees.
SQL> SELECT COUNT(*) FROM employees;
COUNT(*)
----------
38
SQL> DELETE FROM employees WHERE job_id = 'CLERK';
4 rows deleted.
SQL> COMMIT;
Commit complete.
SQL> SELECT COUNT(*) FROM employees;
COUNT(*)
----------
34
NB: Perintah delete tidak ikut serta menghapus space yang telah digunakan oleh data sebelumnya, sehingga pada sat query ke tabel tersebut space untuk data yang telah dihapus juga akan ikut dibaca.
Truncate
Perintah Truncate digunakan untuk menghapus seluruh data pada tabel, perintah ini tidak dapat dibatalkan (tidak bisa di Rollback).
Truncate lebih cepat daripada delete dan tidak menggunakan terlalu banyak tablespace UNDO .
SQL> TRUNCATE TABLE employees;
Table truncated.
SQL> SELECT COUNT(*) FROM employees;
COUNT(*)
----------
0
Drop
Perintah Drop akan menghapus tabel dari database, semua data,index dan privilleges pada tabel yang dihapus. Trigger pada tabel yang di hapus tidak akan dijalankan.
SQL> DROP TABLE employees;
Table dropped.
SQL> SELECT * FROM employees;
SELECT * FROM emp
*
ERROR at line 1:
ORA-00942: table or view does not exist
DROP dan TRUNCATE adalah perintah DDL sehingga tidak bisa dibatalkan, sedangkan DELETE adalah perintah DML dan bisa dibatalkan.
mulai oracle 10, perintah DROP bisa di batalkan denganmenggunakan perintah FLASHBACK
SQL> FLASHBACK TABLE employees TO BEFORE DROP; Flashback complete.