我有一个带有整数列的表,该列没有 NULL 约束,默认值 = 0;
我需要从一系列 csv 文件中复制数据。
在其中一些文件中,此列是空字符串。
到目前为止,我已经将 COPY 命令中的 NULL 参数设置为一些不存在的值,因此空字符串不会转换为 NULL 值,但现在我收到一个错误,指出空字符串对于 INTEGER 列来说是不正确的值。
我想使用 COPY 命令,因为它的速度,但也许这是不可能的。该文件不包含标头。文件中的所有列在表中都有其对应项。
有一种方法可以指定:
-
空刺为零,或
-
如果有 en 空字符串,请使用默认列值?
您可以在不包含该列的表上创建一个视图,并在其上创建一个INSTEAD OF INSERT
触发器。 将数据COPY
到该视图中时,默认值将用于表。不知道性能会不会足够好。