从一个表中选择,根据条件INSERT到另外两个表中

时间:2013-07-26 02:43:59

标签: sql postgresql sql-insert

我有一个包含3个表的Postgres数据库,比如ABC。我想从表A中选择数据并遍历每一行,检查其中一列中的值,然后根据条件将数据插入表B或表C。< / p>

我怎么能这样做,请有人请发一个示例脚本。我更喜欢plpgsql(使用PGAdmin3)。

3 个答案:

答案 0 :(得分:2)

你不需要一个游标,你不需要plpgsql,你甚至不需要data-modifying CTE来允许你在一个SQL语句中这样做。

只需运行两个简单的INSERT语句。如果您想确保全部或全部没有应用,请将它们放入交易中:

BEGIN;

INSERT INTO B (col1, col2)
SELECT col1, col2
FROM   A
WHERE  col_cond = 'something';

INSERT INTO C (col1, col2)
SELECT col1, col2
FROM   A
WHERE  col_cond IS DISTINCT FROM 'something';

COMMIT;

答案 1 :(得分:0)

表A上的select语句的用户光标,请参阅此link

在游标内部,您可以检查条件并在B或C上运行插入语句

有关代码示例,请参阅此link

干杯!!

答案 2 :(得分:0)

输入以下命令:

begin;
insert into table_name as select * from table_name2 where Name="?";
commit;