我想知道Oracle表(或列)如何知道哪個序列被使用或應用於該特定表(或列)。Oracle表如何知道它與哪個序列關聯?
2
A
回答
5
據我所知,序列不是系統地與Oracle中的一個特定表關聯。根據the documentation:
沒有序列,序列值只能以編程方式產生。通過選擇最近生成的值並將其遞增,可以獲得新的主鍵值。此方法在事務期間需要鎖定,並導致多個用戶等待主鍵的下一個值;這個等待被稱爲系列化。如果開發人員在應用程序中有這樣的結構,那麼您應該鼓勵開發人員將他們替換爲序列的訪問。序列消除了序列化並提高了應用程序的併發性。
因此,應用程序的開發人員需要將每個序列與它們所用的表相關聯。通常這是通過使用名稱來完成的,該名稱以某種方式指出了它的用途。因此,填充emp
表主鍵的順序可能被稱爲emp_sequence
。
2
Oracle 12c可以創建一個帶有身份子句的列。
create table MY_TABLE(
ID number generated always as identity
)
/
這會創建一個與該列關聯的序列。您可以查詢視圖ALL_TAB_IDENTITY_COLS找出序列的系統生成的名稱:
select owner, sequence_name
from ALL_TAB_IDENTITY_COLS
where owner='MY_SCHEMA'
and table_name='MY_TABLE'
and column_name='MY_COLUMN'
/
相關問題
- 1. 如何知道哪個視圖與哪個控制器關聯?
- 2. 如何知道我與Firebase關聯了哪個數據庫?
- 3. 如何知道哪些模塊與ActiveRecord :: Base關聯?
- 4. 如何關聯JTextArea和Object?如何知道哪個對象屬於哪個jtextArea?
- 5. 複選框如何知道它與textview的關聯
- 6. 使用Process PerformanceCounters我如何知道實例與哪個進程關聯?
- 7. 如何知道哪個分區列是
- 8. 如何知道任何文件/程序與Java的哪個默認程序相關聯?
- 9. npm列表如何知道哪些是直接依賴關係?
- 10. Pubnub列表devicetoken與頻道關聯?
- 11. 應用程序如何知道從哪個頁面訪問它?
- 12. 如何知道哪個圖像與drupal中的哪個內容項目相關
- 13. QToolBar如何知道它在哪裏?
- 14. 如何正確關聯一個id生成器序列與表
- 15. 如何知道自定義列表中單擊哪個按鈕
- 16. 如何知道哪個列表項被點擊?
- 17. 如何知道在JAVA中選擇了哪個列表
- 18. 如何知道現有表格中創建了哪個列?
- 19. 哪個Oracle表使用序列?
- 20. 如何知道序列的下一個值而不增加它?
- 21. 如何知道爲聯合設置了哪個變量值?
- 22. 如何讓程序知道它在哪裏?
- 23. 如果我知道一個類,我怎麼知道它來自哪個jar?
- 24. Mysql加入 - 如何知道從哪個表檢索哪一行...?
- 25. 如何搜索列表框而不知道它擁有哪種對象?
- 26. C商店如何知道它屬於哪個C? DICOM
- 27. shell如何知道它在哪個目錄?
- 28. MySQL觸發器:如何知道哪個腳本調用它?
- 29. 如何知道它是哪個版本的ASP.net?
- 30. WordPress分類 - 它如何知道哪個object_id?
此前12C,序列不相關聯的表,因此該表不知道用哪個序列。 12c引入了在標識列和默認約束中使用序列的選項。這些信息應該在數據字典中提供。 –
@ShannonSeverance:我對甲骨文相當陌生。發生有一個如何工作的鏈接? –
@JonEricson https://docs.oracle.com/database/121/SQLRF/statements_7002.htm#CJAECCFH – mathguy