私が取り組んでいるデータベースは、すべての主キー (および関連する外部キー) を文字列として (他の誰かによって) プロトタイプ化されたものです。キーは実際には数値である必要があります。
データベースには、最小限のテスト データを含む 16 個のテーブルがあります。すべてのデータのキー フィールドに数値が含まれています。
これを修正する最も簡単な方法は何ですか?
私が取り組んでいるデータベースは、すべての主キー (および関連する外部キー) を文字列として (他の誰かによって) プロトタイプ化されたものです。キーは実際には数値である必要があります。
データベースには、最小限のテスト データを含む 16 個のテーブルがあります。すべてのデータのキー フィールドに数値が含まれています。
これを修正する最も簡単な方法は何ですか?
「最小限のテストデータ」が何を意味するのか正確にはわかりませんが、SQL Developerでこれを行うことができます:
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;