6

複合主キーから列を削除したい(テーブルから削除するのではなく)。私のテーブルがこのような場合。

create table "scott"."xyz"(
   "column1" not null,
   "column2" not null,
   "column3" not null,
   "column4" not null,
   "column5" not null,
   "column6",
    CONSTRAINT PRIMARY KEY ("column1","column2","column3","column4")
);

この主キーをドロップせずに最初の 3 列に変更したい。CONSTRAINTの名前がわからないので。

4

1 に答える 1

5

制約名は必要ありません:

 ALTER TABLE "scott"."xyz" DROP PRIMARY KEY;
 ALTER TABLE "scott"."xyz" ADD PRIMARY KEY ("column1","column2","column3");

ただし、将来的には PK に名前を付けることをお勧めします。

 ALTER TABLE "scott"."xyz" 
   ADD CONSTRAINT pk_xyz PRIMARY KEY ("column1","column2","column3");

また、引用された識別子を使用することはお勧めしません。長期的には、さまざまなツールで問題が発生します。

于 2012-07-12T07:06:37.170 に答える