0

Oracle データベースに 1 つのテーブルを作成しました。テーブル スクリプトは次のとおりです。

  CREATE TABLE wsc_widget_bundle (
    id VARCHAR (50),
    widgetBundle BLOB NULL, 
    devicesoftwareclass VARCHAR(30) NOT NULL,
    widgetProfileId VARCHAR (50) NOT NULL,
    bundleHash BLOB NULL,
    widgetLocale VARCHAR (6) NOT NULL ,
    status INT,  
        primary key(id),
        unique(widgetProfileId, devicesoftwareclass,status),
    foreign key(widgetProfileId) references wsc_widget_profile(id)
  );

そのためのddlを作成すると、次のようになります

create table "DEV1"."WSC_WIDGET_BUNDLE"(
    "ID" VARCHAR2(50) not null,
   "WIDGETBUNDLE" BLOB,
   "DEVICESOFTWARECLASS" VARCHAR2(30) not null,
   "WIDGETPROFILEID" VARCHAR2(50) not null,
   "BUNDLEHASH" BLOB,
   "WIDGETLOCALE" VARCHAR2(6) not null,
   "STATUS" NUMBER,
    constraint "SYS_C00323290" primary key ("ID")
);

alter table "DEV1"."WSC_WIDGET_BUNDLE"  
    add constraint "SYS_C00323292" 
    foreign key ("WIDGETPROFILEID") 
    references "MTP440_DEV1"."WSC_WIDGET_PROFILE"("ID");
create unique index "MTP440_DEV1"."SYS_C00323290" on "MTP440_DEV1"."WSC_WIDGET_BUNDLE"("ID");
create unique index "MTP440_DEV1"."SYS_C00323291" on "MTP440_DEV1"."WSC_WIDGET_BUNDLE"("WIDGETPROFILEID","DEVICESOFTWARECLASS","STATUS");
create index "MTP440_DEV1"."TEST" on "MTP440_DEV1"."WSC_WIDGET_BUNDLE"("DEVICESOFTWARECLASS","STATUS","WIDGETLOCALE","WIDGETPROFILEID");

ここで、テーブルの一意のキー制約を変更するための変更スクリプトを書きたいのですが、テーブルの作成時に、SYS_C00323291 のようなシステムによって指定された一意のキー名の名前について言及していませんでした。名前がわからない一意のキーと世代の新しいキー

4

2 に答える 2

0

user_constraintsビューとuser_cons_columnsビューにクエリを実行すると、制約の名前を見つけることができます。

于 2012-05-04T07:41:31.350 に答える
0
Alter table x
drop constraint pk;

Alter table x
add constraint New_constraint_name PRIMARY KEY (colname);
于 2012-05-04T07:22:14.777 に答える