Sqlite insert query不使用python?

2024-04-26 09:22:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在尝试使用python中的以下代码将数据插入数据库:

import sqlite3 as db
conn = db.connect('insertlinks.db')
cursor = conn.cursor()
db.autocommit(True)
a="asd"
b="adasd"
cursor.execute("Insert into links (link,id) values (?,?)",(a,b))
conn.close()

代码运行时没有任何错误。但是数据库没有更新。我试图添加conn.commit(),但是它给出了一个错误,说找不到模块。请帮忙?


Tags: 数据代码import数据库truedbasconnect
2条回答

可能有点晚,但设置autocommit = true可以节省我的时间!特别是如果您有一个脚本来运行一些批量操作作为update/insert/delete。。。

引用:https://docs.python.org/2/library/sqlite3.html#sqlite3.Connection.isolation_level

这是我在剧本中通常采用的方式:

def get_connection():
    conn = sqlite3.connect('../db.sqlite3', isolation_level=None)
    cursor = conn.cursor()
    return conn, cursor

def get_jobs():
    conn, cursor = get_connection()

    if conn is None:
        raise DatabaseError("Could not get connection")

希望对你有帮助!

插入以下内容后,您必须提交:

cursor.execute("Insert into links (link,id) values (?,?)",(a,b))
conn.commit()

或者使用connection as a context manager

with conn:
    cursor.execute("Insert into links (link,id) values (?,?)", (a, b))

或者通过将isolation_level关键字参数设置为connect()方法设置为None,正确设置autocommit:

conn = db.connect('insertlinks.db', isolation_level=None)

Controlling Transactions

相关问题 更多 >