メンバー、支払い、賞の 3 つのテーブルがあり、3000 以上のレコードがあります。現在、Member テーブルは主キーとして memberId を持ち、memberid は Payment テーブルと Award テーブルの外部キーです。memberid は自動生成されたフィールドではないことに注意してください。このテーブルは Access で作成されました。私の仕事は、Oracle に移行し、Mem_id というプライマリ キーを Member テーブルにシーケンス番号として追加し、mem_id を外部キーとして Payment テーブルと Award テーブルに追加することです。
- Oracle のテーブルを移行しました。
メンバー テーブルに列名 mem_id を追加
alter table member add mem_id number Unique;
シーケンスを作成しました
create Sequence Mem_seq START WITH 1 MAXVALUE 999999999 MINVALUE 1 NOCYCLE NOCACHE NOORDER;
mem_id はすべてのレコードで null であるため、列を更新します
Update member Set mem_id = mem_seq.nextval Where mem_id IS NULL;
これまでのところうまくいきます。今度は、外部キーを支払いテーブルと賞テーブルに追加するという私の挑戦 - 支払いテーブルに mem_id 列を作成しました
alter table PAYMENT
add mem_id number Unique;
mem_id
私の考えは、支払いテーブルで更新することです更新ステートメントは
update PAYMENT set PAYMENT.mem_id = MEMBER.mem_id where PAYMENT.memberid = MEMBER.memberid;
エラーが表示されますORA-00904 member.memberid: invalid identifier
この問題を解決するにはヘルプが必要です。