将 %rowtype 数据插入另一个 table - plpgsql / Postgres
Insert %rowtype data into another table - plpgsql / Postgres
我有一个 table 称为 empl,还有另一个 table new_empl 具有与 empl 相同的列和定义。是否可以使用以下代码将 v_record 中的记录插入 new_empl 中?
DECLARE
v_record empl%rowtype;
BEGIN
Insert into new_empl values v_record;
END;
empl table 中的列太多,我想避免列出它们。
上面的代码片段适用于 Oracle,但对于 Postgres/pgplsql,下面的代码片段非常有用:
DECLARE
v_record empl%rowtype;
BEGIN
Insert into new_empl values (v_record.*);
END;
Is it possible to insert records from v_record in new_empl using the
following code
Yes
这是可能的,但是您插入的方式不会插入任何内容,因为没有任何东西可以分配给变量 v_record
。相反,您可以执行以下操作:
DECLARE
v_record empl%rowtype;
BEGIN
Insert into new_empl Select * from empl;
END;
但是为什么你想在 PLSQL
块中完成它,而你可以自己完成 SQL
。
Insert into new_empl select * from empl;
我有一个 table 称为 empl,还有另一个 table new_empl 具有与 empl 相同的列和定义。是否可以使用以下代码将 v_record 中的记录插入 new_empl 中?
DECLARE
v_record empl%rowtype;
BEGIN
Insert into new_empl values v_record;
END;
empl table 中的列太多,我想避免列出它们。
上面的代码片段适用于 Oracle,但对于 Postgres/pgplsql,下面的代码片段非常有用:
DECLARE
v_record empl%rowtype;
BEGIN
Insert into new_empl values (v_record.*);
END;
Is it possible to insert records from v_record in new_empl using the following code
Yes
这是可能的,但是您插入的方式不会插入任何内容,因为没有任何东西可以分配给变量 v_record
。相反,您可以执行以下操作:
DECLARE
v_record empl%rowtype;
BEGIN
Insert into new_empl Select * from empl;
END;
但是为什么你想在 PLSQL
块中完成它,而你可以自己完成 SQL
。
Insert into new_empl select * from empl;