- TABEL DROP perintah oracle digunakan untuk menghapus tabel dari database.
- Tabel yang dijatuhkan dan datanya tetap tidak tersedia lagi untuk dipilih. Menjatuhkan tabel menjatuhkan indeks dan memicu yang terkait dengannya.
- Oracle Views, sinonim tidak dihapus tetapi menjadi tidak valid
- Tabel yang dijatuhkan dapat dipulihkan menggunakan utilitas FLASHBACK, jika tersedia di recycle bin. Fungsionalitas ini tersedia mulai dari 10g dan seterusnya
- Hanya pembuat tabel yang dapat menjatuhkan tabel atau pengguna dengan hak istimewa apa pun yang dapat melepaskan tabel
Sintaks untuk Drop table oracle
DROP TABLE [TABLE NAME] [PURGE]
Pernyataan di bawah ini akan menghapus tabel dan memasukkannya ke dalam recycle bin.
DROP TABLE TEST;
Pernyataan di bawah ini dapat digunakan untuk mengembalikannya dari recycle bin
FLASHBACK TABLE TEST TO BEFORE DROP;
Pernyataan di bawah ini akan menghapus tabel dan mengeluarkannya dari recycle bin juga.
DROP TABLE TEST PURGE;
Bataskan batasan kaskade tabel
Kita harus Menentukan KENDALA CASCADE untuk menghapus semua batasan integritas referensial yang merujuk ke kunci utama dan unik di tabel yang dijatuhkan. Jika Anda menghilangkan klausa ini, dan batasan integritas referensial seperti itu ada, maka database mengembalikan kesalahan dan tidak menjatuhkan tabel.
CREATE TABLE "EMP"
( "EMPNO" NUMBER(6,0),
"ENAME" VARCHAR2(10),
"JOB" VARCHAR2(9),
"MGR" NUMBER(4,0),
"HIREDATE" DATE,
"SAL" NUMBER(7,2),
"COMM" NUMBER(7,2),
"DEPTNO" NUMBER(2,0),
CONSTRAINT "PK_EMP" PRIMARY KEY ("EMPNO"),
CONSTRAINT "FK_DEPTNO" FOREIGN KEY ("DEPTNO")
REFERENCES "DEPT" ("DEPTNO") ENABLE
);
CREATE TABLE "DEPT"
( "DEPTNO" NUMBER(2,0),
"DNAME" VARCHAR2(14),
"LOC" VARCHAR2(13),
CONSTRAINT "PK_DEPT" PRIMARY KEY ("DEPTNO")
;
SQL> desc emp
Name Null? Type
----------------------------------------- -------- -----------------------
EMPNO NOT NULL NUMBER(6)
ENAME VARCHAR2(10)
JOB VARCHAR2(9)
MGR NUMBER(4)
HIREDATE DATE
SAL NUMBER(7,2)
COMM NUMBER(7,2)
DEPTNO NUMBER(2)SQL>
SQL> desc dept
Name Null? Type
----------------------------------------- -------- -----------------------
DEPTNO NOT NULL NUMBER(2)
DNAME VARCHAR2(14)
LOC VARCHAR2(13)
SQL>
insert into DEPT values(10, 'ACCOUNTING', 'NEW YORK');
insert into dept values(20, 'RESEARCH', 'DALLAS');
insert into dept values(30, 'RESEARCH', 'DELHI');
insert into dept values(40, 'RESEARCH', 'MUMBAI');
insert into emp values( 7698, 'BLAKE', 'MANAGER', 7839, to_date('1-5-2007','dd-mm-yyyy'), 2850, null, 10 );
insert into emp values( 7782, 'CLARK', 'MANAGER', 7839, to_date('9-6-2008','dd-mm-yyyy'), 2450, null, 10 );
insert into emp values( 7788, 'SCOTT', 'ANALYST', 7566, to_date('9-6-2012','dd-mm-yyyy'), 3000, null, 20 );
insert into emp values( 7789, 'TPM', 'ANALYST', 7566, to_date('9-6-2017','dd-mm-yyyy'), 3000, null, null );
insert into emp values( 7560, 'T1OM', 'ANALYST', 7567, to_date('9-7-2017','dd-mm-yyyy'), 4000, null, 20 );
insert into emp values( 7790, 'TOM', 'ANALYST', 7567, to_date('9-7-2017','dd-mm-yyyy'), 4000, null, null );
SQL> select * from emp;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7698 BLAKE MANAGER 7839 01-MAY-07 2850 10
7782 CLARK MANAGER 7839 09-JUN-08 2450 10
7788 SCOTT ANALYST 7566 09-JUN-12 3000 20
7789 TPM ANALYST 7566 09-JUN-17 3000
7790 TOM ANALYST 7567 09-JUL-17 4000
4534 xyz 1000 20
4576 abc 1000
7560 T1OM ANALYST 7567 09-JUL-17 4000 20
SQL> drop table dept;
drop table dept
*
ERROR at line 1:
ORA-02449: unique/primary keys in table referenced by foreign keys
SQL>
SQL> drop table dept cascade constraints;
Table dropped.
Cara menghapus beberapa tabel di Oracle
Mungkin ada persyaratan untuk menghapus beberapa tabel dalam satu langkah
begin
execute immediate 'drop table t_name_1';
execute immediate 'drop table t_name_2';
end;
Cara menghapus semua tabel dalam skema
spool drop_table_schema.sql select 'drop table '||table_name||';' from user_tables spool off@drop_table_schema.sql
Lepaskan tabel jika ada di Oracle
Kami terkadang ingin memeriksa keberadaan tabel untuk menghindari kesalahan dalam kode. Di MySQL, sql server, kami memiliki klausa saat menggunakan pernyataan drop tetapi tidak ada klausa seperti itu di oracle.
Kita dapat menggunakan blok anonim PLSQL untuk mencapai hal yang sama
DECLARE
count INT; BEGIN
SELECT Count(*)
INTO count
FROM dba_tables
WHERE owner = '<schema name>'
AND table_name = '<table name>'; IF count = 1 THEN
EXECUTE IMMEDIATE 'drop table test';
END IF;
END;
Semoga Anda menyukai konten pada pernyataan tabel drop di Oracle. Tolong beri tahu saya umpan baliknya
Bacaan yang Disarankan
Dokumentasi Oracle
FAQ SQL
Artikel Terkait
Cara memperbarui tabel di oracle:Pernyataan pembaruan di oracle digunakan untuk memodifikasi baris yang ada di tabel oracle. Pembaruan dapat dilakukan dengan berbagai cara
Cara Memotong TABLE di Oracle:Memotong TABLE di Oracle lebih cepat daripada menghapus dari tabel di Oracle. Ini adalah pernyataan DDL dan tidak mengaktifkan pemicu penghapusan
cara menghapus baris di Oracle:Hapus dari tabel di Oracle digunakan untuk menghapus baris. HAPUS baris dapat dilakukan menggunakan klausa EXISTS/NOT EXISTS, tabel berdasarkan subquery, cascade
Alter Table di Oracle
INSERT statement di Oracle
buat sintaks tabel di Oracle
Primary Key di Oracle