- द ड्रॉप टेबल डेटाबेस से किसी तालिका को हटाने के लिए oracle कमांड का उपयोग किया जाता है।
- गिराई गई तालिका और उसका डेटा अब चयन के लिए उपलब्ध नहीं रहेगा। तालिका को गिराने से सूचकांक और उससे जुड़े ट्रिगर गिर जाते हैं।
- Oracle Views, समानार्थक शब्द गिराए नहीं जाते लेकिन वे अमान्य हो जाते हैं
- फ्लैशबैक उपयोगिता का उपयोग करके गिराई गई तालिका को पुनर्प्राप्त किया जा सकता है, यदि यह रीसायकल बिन में उपलब्ध है। यह कार्यक्षमता 10g से उपलब्ध है
- केवल तालिका का निर्माता ही तालिका को छोड़ सकता है या उपयोगकर्ता किसी तालिका विशेषाधिकार को छोड़ कर तालिका को छोड़ सकता है
ड्रॉप टेबल ऑरैकल के लिए सिंटैक्स
DROP TABLE [TABLE NAME] [PURGE]
नीचे दिया गया स्टेटमेंट टेबल को छोड़ देगा और उसे रीसायकल बिन में डाल देगा।
DROP TABLE TEST;
नीचे दिए गए कथन का उपयोग इसे रीसायकल बिन से पुनर्स्थापित करने के लिए किया जा सकता है
FLASHBACK TABLE TEST TO BEFORE DROP;
नीचे दिया गया विवरण तालिका को छोड़ देगा और उसे रीसायकल बिन से भी बाहर निकाल देगा।
DROP TABLE TEST PURGE;
ड्रॉप टेबल कैस्केड बाधाएं
हमें सभी संदर्भात्मक अखंडता बाधाओं को छोड़ने के लिए CASCADE CONSTRAINTS निर्दिष्ट करना होगा जो कि गिराई गई तालिका में प्राथमिक और अद्वितीय कुंजियों को संदर्भित करता है। यदि आप इस खंड को छोड़ देते हैं, और ऐसी संदर्भात्मक अखंडता बाधाएं मौजूद हैं, तो डेटाबेस एक त्रुटि देता है और तालिका को नहीं छोड़ता है।
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.
oracle में अनेक तालिकाओं को कैसे छोड़ें
एक ही चरण में कई तालिकाओं को छोड़ने की आवश्यकता हो सकती है
begin
execute immediate 'drop table t_name_1';
execute immediate 'drop table t_name_2';
end;
स्कीमा में सभी तालिकाओं को कैसे छोड़ें
spool drop_table_schema.sql select 'drop table '||table_name||';' from user_tables spool off@drop_table_schema.sql
Oracle में मौजूद होने पर ड्रॉप टेबल
हम कभी-कभी कोड में त्रुटियों को फेंकने से बचने के लिए तालिका अस्तित्व की जांच करना चाहते हैं। MySQL, sql सर्वर में, ड्रॉप स्टेटमेंट का उपयोग करते समय हमारे पास क्लॉज मौजूद है लेकिन ऑरैकल में ऐसा कोई क्लॉज नहीं है।
हम एक ही चीज़ को प्राप्त करने के लिए PLSQL अनाम ब्लॉक का उपयोग कर सकते हैं
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;
आशा है कि आपको Oracle में ड्रॉप टेबल स्टेटमेंट की सामग्री पसंद आएगी। कृपया मुझे फ़ीडबैक बताएं
अनुशंसित पठन
Oracle दस्तावेज़
SQL FAQ
संबंधित लेख
ऑरैकल में टेबल को कैसे अपडेट करें:ऑरेकल में एक अपडेट स्टेटमेंट का इस्तेमाल ऑरैकल टेबल में मौजूदा पंक्तियों को संशोधित करने के लिए किया जाता है। अद्यतन को कई तरीकों से निष्पादित किया जा सकता है
Oracle में TABLE को कैसे छोटा करें:Oracle में Truncate TABLE, oracle में तालिका से हटाने की तुलना में तेज़ है। यह एक डीडीएल स्टेटमेंट है और यह ऑन डिलीट ट्रिगर्स को सक्रिय नहीं करता है
ऑरैकल में एक रो को कैसे डिलीट करें:ऑरैकल में टेबल से डिलीट का उपयोग पंक्तियों को हटाने के लिए किया जाता है। DELETE पंक्तियों को EXISTS/NOT EXISTS क्लॉज, सबक्वेरी पर आधारित टेबल, cascade
Oracle में Alter Table
Oracle में INSERT स्टेटमेंट का उपयोग करके किया जा सकता है
ऑरैकल में टेबल सिंटैक्स बनाएं
प्राथमिक कुंजी ओरेकल में