sql 在 python 中插入(postgres、游标、执行)

sql INSERT in python (postgres, cursor, execute)

我使用 cursor/execute 从 postgres 数据库 SELECTing 数据到 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")

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

我可能不是最新的语言,但是 'f' 应该在引号之前吗?如果那是你的代码,那可能会抛出一个错误,除非它有一个我不知道的用途或者它与问题无关。

您必须在 execute(sql)

之后添加以下行来提交您的交易
conn.commit()

参考:Using INSERT with a PostgreSQL Database using Python