复制同一表中的行,不需要键入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; |
|
|
|
|
|