我有一个带有INTEGER列的表,该列具有NOT NULL约束和DEFAULT值= 0;
我需要从一系列csv文件中复制数据。
在其中一些文件中,此列为空字符串。
到目前为止,我已经在COPY命令中将NULL参数设置为某个非现有值,因此空字符串不会转换为NULL值,但现在我收到一条错误,指出空字符串是INTEGER列的错误值。
我想使用COPY命令,因为它的速度,但也许是不可能的。 该文件不包含标头。文件中的所有列都与表中的对应列相同。
有一种方法可以指定:
空sting为零,或
如果有空字符串,请使用默认列值?
答案 0 :(得分:0)
您可以在表上创建一个不包含该列的视图,并在其上创建一个INSTEAD OF INSERT
触发器。当您将COPY
数据导入该视图时,默认值将用于该表。不知道表现是否足够好。