假设这个简单的 SQL 查询:
INSERT INTO table (col1,col2) VALUES (val1,val2),(val3,val4),(val5,val6);
可以说val3
是无效的值col1
。(val1,val2)
这将导致 psql 中止整个 INSERT 命令——它也不会插入(val5,val6)
。
是否可以让 postgresql 忽略此错误,因此它不会插入(val3,val4)
对但仍会继续执行(val1,val2)
and (val5,val6)
?
我每天都从我的合作伙伴那里获得文本文件中的数据库转储(无法更改),我用它来制作它的副本。有时他巨大的 INSERT 查询会导致如下错误:
ERROR: invalid byte sequence for encoding "UTF8": 0x00
...这使得整个 30000+ 值没有插入到表中,因为其中一个值是错误的。