保存查询结果而不将其追加到PostgreSQL中的现有表

时间:2018-07-31 14:31:32

标签: sql postgresql insert

我有一张表格 road ,其中包含gidgeom列以及一个空列distance。 使用以下脚本:

INSERT INTO road (distance) 
SELECT ST_length(a.geom::geography,true)/1000 
FROM road a;

我只会将结果附加到现有的 road 表中。而且我想知道是否有一种方法可以从distance列的开头保存我的查询结果,以便它们与现有的gid相对应;

1 个答案:

答案 0 :(得分:0)

您可能正在寻找更新?

update road set distance =  ST_length(geom::geography,true)/1000;

尝试在事务中进行回滚:

begin;
    update road set distance =  ST_length(geom::geography,true)/1000;
    select * from road; --to check the result
rollback; -- or commit if you like it