【发布时间】:2016-03-06 18:50:51
【问题描述】:
我正在尝试创建一个包含 2 列的新表。目的是在一个 Postgres 表上用 SELECT 语句填充第一列,然后在另一个 Postgres 表上用另一个 SELECT 语句填充第二列。
我想要实现的通用版本是:
CREATE TABLE test_db_021215(
a_hashed_email VARCHAR,
b_hashed_emailaddress VARCHAR);
INSERT INTO test_db_021215(a_hashed_email)
SELECT hashed_email FROM 123_final;
INSERT INTO test_db_021215(b_hashed_emailaddress)
SELECT hashed_emailadress FROM xyz_final;
ALTER TABLE test_db_021215
ADD COLUMN urn SERIAL NOT NULL PRIMARY KEY;
ANALYZE test_db_021215;
问题在于,虽然上面的查询确实填充了列,但格式很奇怪:
说属性 a_hashed_email 完全填充了 500 条记录,然后属性 b_hashed_emailaddress(说它也有 500 条记录)从记录 1 到 500 为空白,但随后开始填充从 501 - 1000。
所以我最终得到 a_hashed_email 从 1 - 500 填充,从 501 - 1000 填充为空白,b_hashed_emailaddress 从 1 - 500 填充为空白,从 501 - 1000 填充。 p>
我对以前看到过类似的问题有一个模糊的记忆,但我一辈子都找不到它。有人有什么想法吗?
在此先感谢
【问题讨论】:
-
您必须将插入行中的值视为一个
标签: postgresql select sql-insert