Oracle 12cでテーブルの制約名を変更する

2021年11月19日

環境
Oracle 12.2.0.1.0

書式
ALTER TABLE テーブル名 RENAME CONSTRAINT 旧制約名 TO 新制約名;

使用例
1.テーブル「USER_TBL」の制約名を調べる

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SELECT
CONSTRAINT_NAME --制約名
, CONSTRAINT_TYPE --制約タイプ
, TABLE_NAME --テーブル名
, STATUS --ステータス
FROM
USER_CONSTRAINTS
WHERE CONSTRAINT_TYPE = 'P' AND TABLE_NAME = 'USER_TBL';
SELECT CONSTRAINT_NAME --制約名 , CONSTRAINT_TYPE --制約タイプ , TABLE_NAME --テーブル名 , STATUS --ステータス FROM USER_CONSTRAINTS WHERE CONSTRAINT_TYPE = 'P' AND TABLE_NAME = 'USER_TBL';
SELECT
  CONSTRAINT_NAME  --制約名
  , CONSTRAINT_TYPE --制約タイプ
  , TABLE_NAME --テーブル名
  , STATUS  --ステータス
FROM
  USER_CONSTRAINTS
WHERE CONSTRAINT_TYPE = 'P' AND   TABLE_NAME = 'USER_TBL';

実行結果

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
CONSTRAINT_NAME CONSTRAINT_TYPE TABLE_NAME STATUS
PK_USER_TBL P USER_TBL ENABLED
CONSTRAINT_NAME CONSTRAINT_TYPE TABLE_NAME STATUS PK_USER_TBL P USER_TBL ENABLED
CONSTRAINT_NAME	CONSTRAINT_TYPE	TABLE_NAME	STATUS
PK_USER_TBL	    P	            USER_TBL	 ENABLED

2.テーブル「USER_TBL」の制約名(PK_USER_TBL)を(PK_USER_TBL02)に変更する

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
ALTER TABLE USER_TBL RENAME CONSTRAINT PK_USER_TBL TO PK_USER_TBL02
ALTER TABLE USER_TBL RENAME CONSTRAINT PK_USER_TBL TO PK_USER_TBL02
ALTER TABLE USER_TBL RENAME  CONSTRAINT PK_USER_TBL TO PK_USER_TBL02

3.テーブル「USER_TBL」の制約名を調べる

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SELECT
CONSTRAINT_NAME --制約名
, CONSTRAINT_TYPE --制約タイプ
, TABLE_NAME --テーブル名
, STATUS --ステータス
FROM
USER_CONSTRAINTS
WHERE CONSTRAINT_TYPE = 'P' AND TABLE_NAME = 'USER_TBL';
SELECT CONSTRAINT_NAME --制約名 , CONSTRAINT_TYPE --制約タイプ , TABLE_NAME --テーブル名 , STATUS --ステータス FROM USER_CONSTRAINTS WHERE CONSTRAINT_TYPE = 'P' AND TABLE_NAME = 'USER_TBL';
SELECT
  CONSTRAINT_NAME  --制約名
  , CONSTRAINT_TYPE --制約タイプ
  , TABLE_NAME --テーブル名
  , STATUS  --ステータス
FROM
  USER_CONSTRAINTS
WHERE CONSTRAINT_TYPE = 'P' AND   TABLE_NAME = 'USER_TBL';

実行結果

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
CONSTRAINT_NAME CONSTRAINT_TYPE TABLE_NAME STATUS
PK_USER_TBL02 P           USER_TBL ENABLED
CONSTRAINT_NAME CONSTRAINT_TYPE TABLE_NAME STATUS PK_USER_TBL02 P           USER_TBL ENABLED
CONSTRAINT_NAME	CONSTRAINT_TYPE	        TABLE_NAME	STATUS
PK_USER_TBL02	P	          USER_TBL	 ENABLED

 

Oracle 12c

Posted by arkgame