我正从外部源导入文件。我已经将数据放入类似于下面的临时表中。我需要将t_person表中的person_id放到我的临时表中,以便我可以用它做更多的操作。 我有一个解决方法,通过使用临时表上的一个键也插入到t_person中,但它很麻烦,感觉还有另一种方式。
我们正在使用postgresql 9.3,此时版本更改不是一个选项。
CREATE TABLE t_person (person_id serial, first_name text, last_name text);
CREATE TEMPORARY TABLE t1 (person_id integer, first_name text, last_name text);
INSERT INTO t1 (first_name, last_name) values ('john', 'doe'), ('jane', 'doe');
WITH ins1 AS
(
INSERT INTO t_person (first_name, last_name)
SELECT first_name, last_name FROM t1
RETURNING person_id
)
UPDATE t1 SET person_id=ins1.person_id FROM ins1;
上面用最终插入中的person_id更新所有行(或多或少预期)。那么有没有办法只更新t1中用于插入t_person的单行?
谢谢, 萨姆