明朝宝剑 发表于 2023-9-14 12:27:45

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

在工作中,我通常必须同时复制主键,并给它一个新的标记,并可能更改外键。
问题是我不想在执行时输入所有列名;
insert into table_nameselect pk_seq.nextval,    foreign-key         col3、       col4...col51from table_name where pk_id = "original_primary_key"如果我在select语句中做*,我将无法更新前两列…
有没有办法做我想做的事?
                                                               
    解决方案:                                                               
                                                                嗯,可能没那么冗长,但是这个PL / SQL选择:
beginfor 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;
页: [1]
查看完整版本: 复制同一表中的行,不需要键入50 列(同时更改2列)