gpt4 book ai didi

postgresql - PostgreSQL-将数据从松散类型的登台表移动到强类型的最终表-并捕获错误

转载 作者:行者123 更新时间:2023-12-03 08:29:00 24 4
gpt4 key购买 nike

我有一个临时表,它是松散类型的(数据类型文本的所有列(除pk以外的所有col)),我想将此数据移到为该数据正确键入的表中,例如数字是数字,日期是日期等。

我最初的方法是在pgsql中创建一个游标,并通过适当的强制转换将数据插入到最终表中来遍历数据。

我将捕获错误,并使用它们将失败的行插入到错误表中,以便我查看和稍后解决。

有更聪明的方法吗?

问候
戴夫

最佳答案

将PL/PgSQL函数与BEGIN ... EXCEPTION WHEN ... END块一起使用,以包装可能失败的操作。

有关示例和更多信息,请参见Postgres sql exception handling for batch insert

最好在测试模式下调用PostgreSQL的强制转换函数,在该模式下,它们返回一个指示成功的 bool(boolean) 结果并丢弃该产品,甚至最好返回一个元组(result, successflag)。这样,您可以使用普通SQL来完成所有操作。不幸的是,他们不支持这种方式,因此您必须使用异常处理循环和子事务。

关于postgresql - PostgreSQL-将数据从松散类型的登台表移动到强类型的最终表-并捕获错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31447923/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com