回答

收藏

复制同一表中的行,不需要键入50 列(同时更改2列)

技术问答 技术问答 502 人阅读 | 0 人回复 | 2023-09-14

在工作中,我通常必须同时复制主键,并给它一个新的标记,并可能更改外键。
8 }8 [# b2 V0 \1 i& ~; i5 U问题是我不想在执行时输入所有列名;
. k+ |9 l% }# O- s3 Y( j+ Xinsert into table_nameselect pk_seq.nextval,    foreign-key         col3、       col4...col51  from table_name where pk_id = "original_primary_key"如果我在select语句中做*,我将无法更新前两列…: [* i3 z6 ?  ]$ ~! l/ I
有没有办法做我想做的事?
* E  L( r2 S; z' _                                                                9 ~) s& A+ V" O/ g& |" H
    解决方案:                                                               
8 ~' F  ^3 K  S6 q$ l- [                                                                嗯,可能没那么冗长,但是这个PL / SQL选择:; C% S( H) p3 W7 U% f: ?
begin  for r in (select *              from table_name             where pk_id = 'original_primary_key')  loop    r.pk := pk_seq.nextval;    r.fk := 'foreign-key    insert into table_name values r;  end loop;end;
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则