将%rowtype数据插入另一个表 - plpgsql / Postgres

时间:2018-06-14 05:36:52

标签: postgresql plpgsql rowtype

我有一个名为empl的表,并且有另一个表new_empl与empl具有相同的列和定义。是否可以使用以下代码在new_empl中插入v_record中的记录?

DECLARE
   v_record empl%rowtype;
BEGIN 
   Insert into new_empl values v_record;
END;

empl表中有太多列,我想避免列出它们。

2 个答案:

答案 0 :(得分:1)

上面的代码片段适用于Oracle,对于Postgres / pgplsql,以下代码段就像魅力一样:

DECLARE
   v_record empl%rowtype;
BEGIN 
   Insert into new_empl values (v_record.*);
END;

答案 1 :(得分:1)

  

是否可以使用。在new_empl中插入v_record中的记录   以下代码

Yes但是你可能的插入方式不会将任何内容插入到变量v_record中。相反,你可以做类似下面的事情:

DECLARE
   v_record empl%rowtype;
BEGIN 
   Insert into new_empl Select * from empl;
END;

但是为什么你想在PLSQL块中执行此操作SQL本身。{/ p>

   Insert into new_empl select * from empl;