oracle在drop表時要注意


 

在oracle中,比如

drop table STC_GHSLB;

系統同時自動刪除的有這個表的主鍵、索引、trigger。

不能同時自動刪除的有:sequence。

因為sequence不跟表關聯,它是獨立存在的序列,多個表都可以用同一個sequence。

所以要通過drop sequence STAFFLOGIN_LOG_SEQ 這種sql來刪除。

如果你不記得已經建了哪些索引,可以這樣:select * from user_sequences

配合SEQUENCE_NAME like條件,可以搜出相關的sequence。select * from user_sequences where SEQUENCE_NAME like 'SEQ_E3_%';

所以,你建sequence的時候,名稱最好用相同的前綴。

 當你想刪除多個sequence時,可以先把這些sequence的name導出excel(用navicat導出時,sql最后不能有分號,參考http://www.144d.com/?post=233),

再在這些sequence名稱左邊加drop sequence,右邊加分號。

這樣就可以形成刪除sequence的sql語句。拷貝到navicat中執行即可。

 

另一個特殊的表是user_tables表,相當於mysql中的information_schema.TABLES表。

但是user_sequences和user_tables這兩個表,在用戶空間中看不到這兩個表。

 

 

oracle中,一個表,可以對應多個trigger。

 

所以在oracle中實現自增字段時,一個自增自段,需要一個sequence+一個trigger。就算多個自增字段,在同一個表中。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM