使用python脚本或SQL函数向(postgres)SQL数据库添加新列的最佳方法?

2024-06-25 22:55:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据库,其中有一列是格鲁吉亚日期,如{YYYYMMDD}。我想有一个列(或3年,月,日)为Jalai日期。我可以很容易地编写和脚本使用python转换格鲁吉亚日期到Jalali。这是我用python写的:

import jdatetime as jdt
georgian = str(20170828)
def GtoJ(georgian):
    jalai = jdt.GregorianToJalali(int(georgian[:4]),int(georgian[4:6]),int(georgian[-2:]))
#     print('{}{:02}{:02}'.format(jalai.jyear,jalai.jmonth,jalai.jday))
    return '{}{:02}{:02}'.format(jalai.jyear,jalai.jmonth,jalai.jday)

print(GtoJ(georgian)) ##13960606

假设我在postgresql数据库中创建了一个名为jdate的空列,使用sqlalchemy或任何其他sql引擎,我用以下代码更新每一行:

for date in history_tabel_date:
    jdate = GtoJ(str(date))
    con.execute('update history_tale jdate= value_jdate where date = {}'.format(date))

写一个做同样事情的sql函数的方法是什么

一般来说,在sql之外编写脚本是一个好主意,还是sql函数更好,更值得推荐


Tags: 脚本数据库formatsqldateintprintstr
1条回答
网友
1楼 · 发布于 2024-06-25 22:55:41

当使用数据库作为脚本的资源时,由于创建连接、传输数据等原因,当脚本和数据库来回运行时会出现瓶颈。因此,您应该考虑在两端执行大部分数据处理并减少查询数(INSERTSUPDATESDELETES)到最小值

如果要在数据库端执行函数,可以考虑使用PL/Python,这是一个

procedural language allows PostgreSQL functions to be written in the Python language.

相关问题 更多 >