我正在尝试在 Oracle 10gR2 中进行以下更新:
update
(select voyage_port_id, voyage_id, arrival_date, port_seq,
row_number() over (partition by voyage_id order by arrival_date) as new_seq
from voyage_port) t
set t.port_seq = t.new_seq
Voyage_port_id 是主键,voyage_id 是外键。我正在尝试根据每个航程中的日期分配一个序列号。
但是,上述操作失败并出现ORA-01732:在此视图上数据操作操作不合法
有什么问题,我该如何避免?