是否可以使用外部非 SQL 函数在 PostgreSQL 中设置默认列值?

是否可以使用外部非 SQL 函数在 PostgreSQL 中设置默认列值?

例如,假设我希望有一列获取行 ID 并通过 Python 脚本运行它,该脚本返回与该数字相关的一些信息(随机示例)。

我是否需要手动用这些信息填充数据库,或者是否存在某种机制可以在数据库内部执行此操作?

答案1

PL/Python似乎是显而易见的选择。这里有一点快速教程帮助您入门。这对于需要数据库自动执行某些操作(例如触发器)或从存储过程执行某些操作且您选择的语言是 Python 的情况非常有用。

但是,如果只是一次性操作,检查所有数据并更新某些内容,那么最好将其写在数据库之外的脚本中,然后直接在数据库上运行。一般来说,在数据库之外维护代码更好。您可以更轻松地对其进行版本控制、对其进行测试并根据需要对其进行更新。这当然取决于许多因素,因此这更多的是一个偏好问题,而不是一个确定的问题。如果没有合法的用例(显然它确实有),PL/Python 就不会存在。

相关内容