在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。就算多個自增字段,在同一個表中。