我想将CSV文件复制到表r
中。在文件中,字符串"NULL"
代表NULL
,所以我尝试了:
copy r from 'file.csv' WITH NULL AS 'NULL' DELIMITER ';' CSV HEADER;
这很有效。但是另一个文件包含两个表示NULL的值:字符串"NULL"
和空字符串""
。如何声明多个值应解释为NULL
?
答案 0 :(得分:1)
正如@Matt所提到的,这里最好的选择是将列导入为text
,然后将其转换为timestamptz
。所以创建这样的表:
CREATE TABLE r (
...
t timestamp with time zone,
...
);
然后按照建议使用COPY
导入数据。最后转换时间戳如下:
ALTER TABLE r
ALTER COLUMN t
TYPE timestamptz
USING
CASE t
WHEN 'NULL' THEN NULL
WHEN '' THEN NULL
ELSE t::timestamptz
END;