Oracle主鍵
Oracle主鍵
1 建立不指定主鍵名的主鍵
create table emp
(
id number(6),
first_name varchar2(20)
);
表已建立
SQL> alter table emp add primary key (id);
表已更改。
檢視主鍵資訊
SQL> select table_name, constraint_name, constraint_type, status from user_constraints where table_name = 'EMP';
TABLE_NAME CONSTRAINT_NAME CONSTRAINT_TYPE STATUS
-------------- ------------------------------ --------------- --------
EMP SYS_C0010818 P ENABLED
檢視主鍵所在的列
SQL> select table_name, constraint_name, column_name from user_cons_columns where constraint_name = 'SYS_C0010818';
TABLE_NAME CONSTRAINT_NAME COLUMN_NAME
-------------- ------------------------------ ---------------
EMP SYS_C0010818 ID
2 刪除主鍵
SQL> alter table emp drop primary key;
表已更改
檢視主鍵資訊
SQL> select table_name, constraint_name, constraint_type, status from user_constraints where table_name = 'EMP';
(結果為空)
3 建立命名主鍵
SQL> alter table emp add constraint pk_emp primary key (id);
表已更改。
檢視主鍵資訊
SQL> select table_name, constraint_name, constraint_type, status from user_constraints where table_name = 'EMP';
TABLE_NAME CONSTRAINT_NAME CONSTRAINT_TYPE STATUS
-------------- ------------------------------ --------------- --------
EMP PK_EMP P ENABLED
4 重新命名主鍵
SQL> alter table emp rename constraint PK_EMP to PK_EMP_NEW;
表已更改。
檢視主鍵資訊
SQL> select table_name, constraint_name, constraint_type, status from user_constraints where table_name = 'EMP';
TABLE_NAME CONSTRAINT_NAME CONSTRAINT_TYPE STATUS
-------------- ------------------------------ --------------- --------
EMP PK_EMP_NEW P ENABLED
5 主鍵與索引
1)若主鍵列原先沒有索引,則建立主鍵時會自動建立一個索引,索引的名稱與剛建立時的主鍵名稱一樣。且索引名稱不會隨著主鍵名稱被重新命名而改變。刪除主鍵會導致索引被一併刪除。
SQL> select table_name, index_name, index_type from user_indexes where table_name='EMP';
TABLE_NAME INDEX_NAME INDEX_TYPE
-------------- ------------------------------ ---------------------------
EMP PK_EMP NORMAL
SQL> alter table emp drop primary key;
表已更改。
SQL> select table_name, index_name, index_type from user_indexes where table_name='EMP';
(結果為空)
2)若在某列建立主鍵之前該列已經建立過索引,則建立主鍵時不會再次建立索引,且主鍵與索引之間沒有連帶關係。刪除主鍵不會同時刪除索引。
SQL> create index ind_emp on emp(id);
索引已建立。
SQL> select table_name, index_name, index_type from user_indexes where table_name='EMP';
TABLE_NAME INDEX_NAME INDEX_TYPE
-------------- ------------------------------ ---------------------------
EMP IND_EMP NORMAL
SQL> alter table emp add primary key(id);
表已更改。
SQL> select table_name, constraint_name, constraint_type, status from user_constraints where table_name = 'EMP';
TABLE_NAME CONSTRAINT_NAME CONSTRAINT_TYPE STATUS
-------------- ------------------------------ --------------- --------
EMP SYS_C0010820 P ENABLED
SQL> alter table emp drop primary key;
表已更改。
SQL> select table_name, index_name, index_type from user_indexes where table_name='EMP';
TABLE_NAME INDEX_NAME INDEX_TYPE
-------------- ------------------------------ ---------------------------
EMP IND_EMP NORMAL
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29485627/viewspace-1293792/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle主鍵與複合主鍵的效能分析Oracle
- Oracle並行新增主鍵Oracle並行
- Oracle根據主鍵查詢外來鍵Oracle
- Oracle 建立主鍵自增表Oracle
- myBatis插入oracle獲取主鍵MyBatisOracle
- oracle 聯合主鍵學習Oracle
- ORACLE設定遞增主鍵Oracle
- oracle增加主鍵也不會了Oracle
- oracle新增主鍵的四種方法:Oracle
- Oracle刪除主鍵保留索引的方法Oracle索引
- Oracle主鍵、唯一鍵與唯一索引的區別Oracle索引
- 主鍵與主鍵索引的關係索引
- 通用mapper用oracle序列作為主鍵APPOracle
- Oracle主鍵選擇對插入的影響Oracle
- 主鍵命名
- ORACLE批量刪除無主鍵重複資料Oracle
- 如何在Oracle表中選擇主鍵列BWOracle
- 主鍵、自增主鍵、主鍵索引、唯一索引概念區別與效能區別索引
- oracle中檢視一張表是否有主鍵,主鍵在哪個欄位上Oracle
- oracle 序列值導致的主鍵衝突問題Oracle
- Oracle主鍵約束、唯一鍵約束、唯一索引的區別(轉)Oracle索引
- java主鍵生成Java
- 主鍵分類
- oracle主鍵序列的建立,刪除,修改序列起始值Oracle
- Oracle RAC一鍵部署001(主機環境校驗)Oracle
- 注意:Oracle中的聯合主鍵查詢問題(轉)Oracle
- 主鍵為聯合主鍵時,索引B+樹結構索引
- 分散式主鍵生成分散式
- postgresql自增主鍵SQL
- Hibernate主鍵策略
- 修改主鍵的SQLSQL
- MySQL主鍵的理解MySql
- ORACLE: 查詢(看)表的主鍵、外來鍵、唯一性約束和索引Oracle索引
- 資料庫主鍵、從鍵(易懂版)資料庫
- Mysql關於自增主鍵,自增主鍵優化總結MySql優化
- Oracle impdp遷移資料後主鍵丟失故障處理Oracle
- GoldenGate MSSQL Oracle的主鍵問題導致的錯誤GoSQLOracle
- mybatis oracle資料庫批次插入資料,忽略主鍵重複MyBatisOracle資料庫