回答

收藏

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

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

在工作中,我通常必须同时复制主键,并给它一个新的标记,并可能更改外键。! w4 p& l6 r. s
问题是我不想在执行时输入所有列名;
% Q' A9 E2 ~  A  N5 r. U, ^+ H; Sinsert into table_nameselect pk_seq.nextval,    foreign-key         col3、       col4...col51  from table_name where pk_id = "original_primary_key"如果我在select语句中做*,我将无法更新前两列…
' _0 M- F8 a' ]- X. e# t" ]有没有办法做我想做的事?. o/ r0 n. Y: h) y& i* m2 h9 V
                                                               
9 y5 ]# `' h$ O0 K4 H    解决方案:                                                                / S$ W% Z1 p9 M2 t5 [& e# b
                                                                嗯,可能没那么冗长,但是这个PL / SQL选择:: H2 c# w% E7 C
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;
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则