2

私が取り組んでいるデータベースは、すべての主キー (および関連する外部キー) を文字列として (他の誰かによって) プロトタイプ化されたものです。キーは実際には数値である必要があります。

データベースには、最小限のテスト データを含む 16 個のテーブルがあります。すべてのデータのキー フィールドに数値が含まれています。

これを修正する最も簡単な方法は何ですか?

4

2 に答える 2

1

「最小限のテストデータ」が何を意味するのか正確にはわかりませんが、SQL Developerでこれを行うことができます:

  1. テーブル DDL をエクスポートする
  2. データを挿入ステートメントとしてエクスポートする
  3. 1 で生成された DDL スクリプトを変更して、列を NUMBER タイプに更新します。
  4. スキーマを削除して再作成する
  5. スクリプトを 3 から 2 に適用します。
于 2012-11-22T01:29:46.970 に答える
0

1つの関連付けに変更を加えるSQLスクリプトを作成してから、変更してさらに20回繰り返します。

最初のテーブル(MODULES.IDからMODULE_SESSIONS.MODULE_IDへの関連付け)を実行しましたが、機能しました。これが私が使用したスクリプトです:

alter table MODULE_SESSIONS drop constraint FK_MODULE_MODULE_SESSION_FK1;
alter table MODULES drop constraint MODULES_PK;
alter table MODULES rename column ID to OLD;
alter table MODULES add ID INTEGER;
update MODULES set ID = OLD;
alter table MODULES drop column OLD;
alter table MODULE_SESSIONS rename column MODULE_ID to OLD;
alter table MODULE_SESSIONS add MODULE_ID INTEGER;
update MODULE_SESSIONS set MODULE_ID = OLD;
alter table MODULES add constraint MODULE_PK primary key(ID); 
alter table MODULE_SESSIONS add constraint FK_MODULE_MODULE_SESSION_FK1 foreign key(MODULE_ID) references MODULES(ID);
alter table MODULE_SESSIONS drop column OLD;
于 2012-11-26T19:04:19.017 に答える