[Python] Nachdem postgresql Daten eingefügt hat, senden conn und Cursor Probleme und schließen Probleme
Wenn Sie psycopg2 verwenden, um Daten in die Datenbank einzufügen, müssen Sie zuerst ein Cursor-Objekt conn.cursor()
erstellen und dann das Cursor-Objekt verwenden, um SQL-Einfügungsanweisungen auszuführen. Nach dem Einfügen von Daten können Sie die conn.commit()
Commit- um den Einfügevorgang in der Datenbank zu speichern.
Bevor Sie die Transaktion festschreiben, können Sie das Cursorobjekt mit cur.close()
schließen , dies ist jedoch nicht erforderlich. Wenn Sie das Cursorobjekt schließen, bevor Sie die Transaktion festschreiben, aber versuchen, es nach dem Festschreiben der Transaktion zu verwenden, erhalten Sie einen Fehler.
Im Folgenden finden Sie einen Beispielcode zum Einfügen von Daten in eine PostgreSQL-Datenbank, der den Prozess zum Festschreiben einer Transaktion nach dem Einfügen von Daten demonstriert:
import psycopg2
# 连接数据库
conn = psycopg2.connect(
host="your_host_name",
database="your_database_name",
user="your_username",
password="your_password"
)
# 创建游标对象
cur = conn.cursor()
# 插入数据
cur.execute("INSERT INTO your_table_name (column1, column2, column3) VALUES (%s, %s, %s)", (value1, value2, value3))
# 提交事务
conn.commit()
# 关闭游标和连接
cur.close()
conn.close()
Im obigen psycopg2
Code connect
verbinden wir uns zunächst mit der Funktion des Moduls mit der PostgreSQL-Datenbank. Dann haben wir ein Cursorobjekt erstellt cur
und execute
die Methode , um eine SQL-Einfügeanweisung auszuführen, um die Daten in die Datenbank einzufügen. Schließlich schreiben wir die Transaktion mit commit
der Methode und speichern die Einfügeoperation in der Datenbank. Beachten Sie, dass die Daten nicht in der Datenbank gespeichert werden, wenn Sie commit
die Methode .
Schließlich schließen wir das Cursorobjekt und die Datenbankverbindung mit close
der Methode . Beachten Sie, dass Sie nach dem Schließen einer Verbindung nichts mehr mit diesem Verbindungsobjekt tun können.
Wenn Sie commit
die Methode um Transaktionen manuell festzuschreiben, können Sie conn.autocommit
die Eigenschaft auf setzen True
, wodurch jede SQL-Anweisung automatisch an die Datenbank festgeschrieben wird, ohne commit
die Methode .
Das folgende Beispiel zeigt, wie Sie autocommit
die Eigenschaft True
und execute
die Methode , um Daten in eine PostgreSQL-Datenbank einzufügen:
import psycopg2
# 连接数据库,并设置 autocommit 属性为 True
conn = psycopg2.connect(
host="your_host_name",
database="your_database_name",
user="your_username",
password="your_password",
autocommit=True
)
# 创建游标对象
cur = conn.cursor()
# 插入数据
cur.execute("INSERT INTO your_table_name (column1, column2, column3) VALUES (%s, %s, %s)", (value1, value2, value3))
# 关闭游标和连接
cur.close()
conn.close()
Im obigen Code verwenden wir psycopg2
die connect
Funktion des Moduls , um eine Verbindung zur PostgreSQL-Datenbank herzustellen, und setzen autocommit
die Eigenschaft auf True
. Dann haben wir ein Cursorobjekt erstellt cur
und execute
die Methode , um eine SQL-Einfügeanweisung auszuführen, um die Daten in die Datenbank einzufügen. Da wir autocommit
die Eigenschaft True
, wird jede SQL-Anweisung automatisch an die Datenbank übergeben, ohne dass commit
die Methode .
Schließlich schließen wir das Cursorobjekt und die Datenbankverbindung mit close
der Methode . Beachten Sie, dass Sie nach dem Schließen einer Verbindung nichts mehr mit diesem Verbindungsobjekt tun können.