【问题标题】:sql INSERT in python (postgres, cursor, execute)python中的sql INSERT(postgres,游标,执行)
【发布时间】:2018-11-11 16:12:20
【问题描述】:

我对 SELECTing 使用游标/执行从 postgres 数据库中的 python 中的数据没有问题。只是将 sql 更改为INSERT 一行,但没有将任何内容插入数据库。谁能告诉我应该修改什么?有点困惑,因为除了 sql 语句之外,一切都是一样的。

<!-- language: python -->
@app.route("/addcontact")
def addcontact():

    # this connection/cursor setting showed no problem so far
    conn = pg.connect(conn_str)
    cur = conn.cursor(cursor_factory=psycopg2.extras.DictCursor)

    sql = f"INSERT INTO jna (sid, phone, email) VALUES ('123','123','123')"
    cur.execute(sql) 
    return redirect("/contacts")

【问题讨论】:

  • 你可以试试:sql = f"INSERT INTO jna (\"sid\", \"phone\", \"email\") VALUES ('123','123',' 123')
  • @ErayBalkanli 感谢您的评论,但这也没有用..
  • 好的。您可以尝试在执行(sql)行之后添加conn.commit()吗?

标签: python sql database postgresql database-cursor


【解决方案1】:

首先查看您的表设置并确保您的变量以正确的顺序、格式等命名,如果您没有登录到 sql server 上的特定数据库,它将不知道表在哪里,您在执行插入语句之前,可能需要发送类似 'USE databasename' 的内容,以便您的计算机位于服务器中的正确位置。

我可能不了解该语言的最新情况,但是“f”应该就在引号之前吗?如果这在你的代码中可能会引发错误,除非它有我不知道的用途或与问题无关。

【讨论】:

    【解决方案2】:

    您必须通过在执行(sql)之后添加以下行来提交您的事务

    conn.commit()
    

    参考:Using INSERT with a PostgreSQL Database using Python

    【讨论】:

      猜你喜欢
      • 2018-09-20
      • 2019-01-20
      • 1970-01-01
      • 1970-01-01
      • 2021-11-20
      • 1970-01-01
      • 1970-01-01
      • 2018-10-11
      • 2019-04-30
      相关资源
      最近更新 更多