PostgreSQL:外表和丢弃的记录

时间:2016-06-11 07:11:01

标签: postgresql external-tables

其中PostgreSQL存储在select期间从外表中丢弃的记录?我有下表:

CREATE FOREIGN TABLE ext.alternatenamesext (
  altid BIGINT,
  geoid BIGINT,
  isolanguage VARCHAR(7),
  alternatename TEXT,
  ispreferredname INTEGER,
  isshortname INTEGER,
  iscolloquial INTEGER,
  ishistoric INTEGER
) 
SERVER edrive_server
OPTIONS (
  delimiter E'\t',
  encoding 'UTF-8',
  filename '/mnt/storage/edrive/data/alternateNames.txt',
  format 'csv');

alternateNames.txt包含约11万条记录。但是当我做" SELECT * FROM ext.alternatenamesext"它只返回~950万条记录。其余的2mln是哪里?有没有办法将它们放入单独的文件中,例如Oracle的sql * ldr?

1 个答案:

答案 0 :(得分:0)

问题已通过CREATE FOREIGN TABLE ...的以下语法解决:

CREATE FOREIGN TABLE ext.alternatenamesext (
  altid BIGINT,
  geoid BIGINT,
  isolanguage VARCHAR(7),
  alternatename VARCHAR(400),
  isPreferredName INT,
  isShortName INT,
  isColloquial INT,
  isHistoric INT
)
SERVER edrive_server
OPTIONS (
  delimiter E'\t',
  encoding 'UTF-8',
  filename '/mnt/storage/edrive/data/alternateNames.txt',
  format 'text',  -- not 'csv'!
  null '');  -- eliminate null values (some kind of TRAILING NULLCOLLS in Oracle I guess)