2015-05-20 18 views
2

我不是很喜歡數據庫,我有以下疑問。當用戶在表中插入新記錄時,如何知道表示表的主鍵的字段值是否會自動生成?

我在使用Oracle SQL Developer作爲「IDE」使用Oracle數據庫。

在這裏,我可以檢查一個名爲coda_rx有一些領域的表。其中一個字段名爲PK_CODA(這是第一個),我認爲它代表了此表的主鍵。它不是nullabe(並且這個特徵需要成爲主要關鍵)。

我的問題是:如何在用戶向我的coda_rx表插入新記錄時自動生成該字段的值?

TNX

回答

1

要確認該列是否是表的主鍵,你可以加入USER_CONSTRAINTSUSER_CONS_COLUMNS意見。

SELECT a.table_name, 
    a.constraint_type, 
    b.constraint_name, 
    b.column_name 
FROM user_constraints a, 
    user_cons_columns b 
WHERE a.owner= b.owner 
AND a.table_name = b.table_name 
AND a.constraint_name = b.constraint_name 
AND a.table_name =UPPER('coda_rx') 
AND a.constraint_type='P'; 

現在,有兩種方式一欄可以自動填充:

  • 在12C
  • 推出觸發標識列序列

如果它是一個標識列,那麼你可以查詢all_tab_identity_cols觀點:

SELECT table_name, 
    column_name, 
    generation_type, 
    identity_options 
FROM user_tab_identity_cols 
WHERE table_name = UPPER('coda_rx') 
ORDER BY 1, 
    2 

如果使用序列填充列在表上觸發,你可以查詢USER_TRIGGERS觀點:

SELECT trigger_name, 
     table_name, 
     column_name 
FROM user_triggers; 

SQL Developer它更簡單:

  1. 打開對象瀏覽器
  2. 單擊並展開表
  3. 單擊並展開所需的表上列名
  4. 它將打開表視圖
  5. 雙擊。
  6. 點擊約束觸發標籤

有關這兩個功能的詳細信息,請閱讀:

相關問題