首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pg8000创建表会混淆列名和类型

pg8000创建表会混淆列名和类型
EN

Stack Overflow用户
提问于 2019-10-02 01:32:20
回答 1查看 271关注 0票数 0

我在我的python包中使用pg8000 for Postgres api。我创建了一个函数,就是创建一个不存在这样的表的表。函数如下:

代码语言:javascript
复制
    def create_tables(self, cur, tables):

       for i, table in enumerate(tables):
            name = 'important_' + table
            query = '''CREATE TABLE IF NOT EXISTS {} (
                        {}  CHAR(9),
                        {}  DATE,
                        {}  DECIMAL,
                        {}  TIME,
                        {}  TIME,
                        {}  NUMERIC,
                        {}  CHAR,
                        {}  CHAR,
                        {}  DECIMAL 
                    )
                '''.format(name, "key", "date", "cycle_sequence", "sent_time","processed_time", "amount", "sender", "receiver", "jumbo")

            cur.execute(query)

查询运行时没有错误(在程序和在线fiddle here中),除了表列名称是例如:"key CHAR(9)“、"date DATE”等。因此,查询正在执行,但无法识别语法。但是根据this,查询语法是正确的。有什么建议吗?

注意1:有一个类似的问题here,但我没有类似的症状,因为我没有得到一个语法错误。我的查询成功。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-02 22:21:45

这对我来说似乎很奇怪,但“修复”是删除查询的列规范部分中“(”之前的空格,如下所示)。有了空格,(名称,类型)元组被解释为单个字符串,没有空格,它们被正确地解释为列名和类型。

代码语言:javascript
复制
query = '''CREATE TABLE IF NOT EXISTS {} (...

query = '''CREATE TABLE IF NOT EXISTS {}(...

我使用的记录是:Anaconda1.9.7的PyCharm 2019.2.3 (社区版)。db api是'pg8000‘包。

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

https://stackoverflow.com/questions/58189738

复制
相关文章

相似问题

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