我有三张表——会员、付款、奖励,上面有超过 3000 条记录。目前Member 表有memberId 作为主键,memberid 是Payment 和Award 表的外键。注意 memberid 不是自动生成的字段。这些表是在 Access 中创建的。我的工作是迁移到 Oracle 并添加主键,让我们说 mem_id 作为序列号到成员表,并将 mem_id 作为外键添加到付款和奖励表。
- 我已经迁移了 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 都为空,因此我更新了该列
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
需要帮助来解决这个问题。