首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用python脚本或SQL函数向(postgres)SQL数据库添加新列的最佳方法?

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

Stack Overflow用户
提问于 2017-08-30 14:39:47
回答 1查看 52关注 0票数 0

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

代码语言:javascript
复制
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

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

代码语言:javascript
复制
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函数更好,推荐使用?

EN

回答 1

Stack Overflow用户

发布于 2017-08-30 14:52:18

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

如果您正在考虑在数据库端执行该函数,可以考虑使用PL/Python,它是一个

过程语言允许用Python语言编写PostgreSQL函数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45953627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档