Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
插入或替换在某些情况下不使用python sqlite3替换_Python_Sql_Sqlite - Fatal编程技术网

插入或替换在某些情况下不使用python sqlite3替换

插入或替换在某些情况下不使用python sqlite3替换,python,sql,sqlite,Python,Sql,Sqlite,我正在编写一个脚本,它扫描一堆新闻文章,并将所有单个单词以及每个单词出现的次数存储在SQLite数据库中。为此,我使用问题中所述的插入或替换。我遇到的问题是,有时它不能在应该替换的时候替换。我认为造成这种情况的原因是,由于sql查询并行进行,一个单词被插入到数据库中,当我的脚本找到该单词的下一个外观时,它还没有将其插入到数据库中,因此它会生成一个新条目,即插入而不是替换。这是一个合理的担忧吗?如果是这样,如何使脚本在执行下一个sql查询之前等待上一个sql查询完成 以下是插入/替换的代码: de

我正在编写一个脚本,它扫描一堆新闻文章,并将所有单个单词以及每个单词出现的次数存储在SQLite数据库中。为此,我使用问题中所述的插入或替换。我遇到的问题是,有时它不能在应该替换的时候替换。我认为造成这种情况的原因是,由于sql查询并行进行,一个单词被插入到数据库中,当我的脚本找到该单词的下一个外观时,它还没有将其插入到数据库中,因此它会生成一个新条目,即插入而不是替换。这是一个合理的担忧吗?如果是这样,如何使脚本在执行下一个sql查询之前等待上一个sql查询完成

以下是插入/替换的代码:

def incremement_or_insert(subject, word):
    db = connect_to_db()
    c = db.cursor()
    query = "INSERT OR REPLACE INTO subject_words (subject, word, count) VALUES (?, ?, COALESCE((SELECT count + 1 FROM subject_words WHERE subject = ? AND word = ?), 1));"
    c.execute(query, (subject, word, subject, word))
    db.commit()
    db.close

我不认为sqlite有重复,至少我找不到任何关于它的文档。你的代码中没有类似的东西。在任何情况下,SQLite都没有写并行性。