📜  PostgreSQL – 使用Python将数据插入表中

📅  最后修改于: 2022-05-13 01:54:28.252000             🧑  作者: Mango

PostgreSQL – 使用Python将数据插入表中

在本文中,我们将研究使用Python将数据插入 PostgreSQL 表的过程。为此,请按照以下步骤操作:

  • 第 1 步:使用psycopg2 模块的 connect() 方法连接到 PostgreSQL 数据库。
conn = psycopg2.connect(dsn)
  • 步骤 2:通过调用cursor() 方法创建一个新的游标对象
cur = conn.cursor()
  • 第 3 步:现在通过运行execute() 方法执行 INSERT 语句
cur.execute(sql, (value1,value2))
  • 第 4 步:插入数据后,调用commit() 方法使更改永久生效。
conn.commit()
  • 第 5 步:现在终止游标和与数据库的连接。
cur.close()
conn.close()

例子:

例如,我们将使用我们在文章系列前面部分中创建的学校数据库学生表

在这里,我们将创建一个insert_student()函数来将 student_name 行插入到学生表中:

Python3
#!/usr/bin/python
  
import psycopg2
from config import config
  
  
def insert_student(student_name):
    """ insert a new vendor into the vendors table """
    sql = """INSERT INTO students(student_name)
             VALUES(%s) RETURNING student_id;"""
    conn = None
    student_id = None
    try:
        # read database configuration
        params = config()
        # connect to the PostgreSQL database
        conn = psycopg2.connect(**params)
        # create a new cursor
        cur = conn.cursor()
        # execute the INSERT statement
        cur.execute(sql, (student_name,))
        # get the generated id back
        student_id = cur.fetchone()[0]
        # commit the changes to the database
        conn.commit()
        # close communication with the database
        cur.close()
    except (Exception, psycopg2.DatabaseError) as error:
        print(error)
    finally:
        if conn is not None:
            conn.close()
  
    return student_id


现在要验证插入,请在psql shell 中使用以下命令:

SELECT * FROM student;

输出: