Oracle版本:
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.6.0 - Production
PL/SQL Release 9.2.0.6.0 - Production
CORE 9.2.0.6.0 Production
TNS for 32-bit Windows: Version 9.2.0.6.0 - Production
NLSRTL Version 9.2.0.6.0 - Production
****************************************************************
//**為表建立主鍵時,如果沒有指定主鍵名稱,Oracle會自動產生一個名稱類似“SYS_C00421221”的主鍵約束。
//**同時,產生一個同名的主鍵索引。如下查詢:
SQL> COL 約束名 FORMAT A13
SQL> COL 約束類型 FORMAT A8
SQL> COL 表名 FORMAT A4
SQL> COL 命名方式 FORMAT A14
SQL> COL 索引名 FORMAT A13
SQL> SELECT constraint_name 約束名,constraint_type 約束類型,table_name 表名,generated 命名方式,index_name 索引名
2 FROM user_constraints
3 where table_name = 'PC59' and constraint_type = 'P';
約束名 約束類型 表名 命名方式 索引名
------------- -------- ---- -------------- -------------
SYS_C00421221 P PC59 GENERATED NAME SYS_C00421221
****************************************************************
//**如果要對主鍵約束和主鍵索引重新命名,可以採用如下方法:
SQL> ALTER TABLE pc59 RENAME CONSTRAINT SYS_C00421221 TO PK_PC59;
Table altered
SQL> ALTER INDEX SYS_C00421221 RENAME TO PK_PC59;
Index altered
****************************************************************
//**重新查詢資料庫檢視,可以發現主鍵約束和主鍵索引的名稱都發生了變化,
//**但是命名方式並沒有發生變化。
//**如果為表產生主鍵時指定了名稱,那麼命名方式為USER NAME,否則為GENERATED NAME。
SQL> COL 約束名 FORMAT A13
SQL> COL 約束類型 FORMAT A8
SQL> COL 表名 FORMAT A4
SQL> COL 命名方式 FORMAT A14
SQL> COL 索引名 FORMAT A13
SQL> SELECT constraint_name 約束名,constraint_type 約束類型,table_name 表名,generated 命名方式,index_name 索引名
2 FROM user_constraints
3 where table_name = 'PC59' and constraint_type = 'P';
約束名 約束類型 表名 命名方式 索引名
------------- -------- ---- -------------- -------------
PK_PC59 P PC59 GENERATED NAME PK_PC59