sqlite3,IntegrityError:插入值时唯一约束失败

2024-02-17

为了防止我的数据库变得太大,我希望 sqlite 只插入尚未插入的值。我做了一些搜索,并认为最好的方法是使用 UNIQUE 约束。在我看来,插入不唯一的值时 sqlite 会崩溃,如何避免此错误并继续下一次提交?

下面是一些相关代码。

sql = sqlite3.connect('submissions.db')
cur = sql.cursor()
cur.execute('CREATE TABLE IF NOT EXISTS some_table(id TEXT UNIQUE)')
sql.commit()

for thing in things:
    try:
        # Do some stuff
    except AttributeError:
        pass

    cur.execute('INSERT INTO some_table VALUES(?)', [thing])
    sql.commit()

这是回溯:

Traceback (most recent call last):
  File "D:\Directory\Python\Projects\Oddshotcrawler for Reddit, globaloffensive\oddshotcrawler.py", line 62, in <module>
    oddshotcrawler()
  File "D:\Directory\Python\Projects\Oddshotcrawler for Reddit, globaloffensive\oddshotcrawler.py", line 54, in oddshotcrawler
    cur.execute('INSERT INTO oldposts VALUES(?)', [thing])
sqlite3.IntegrityError: UNIQUE constraint failed: some_table.id
[Finished in 7.1s with exit code 1]

Change INSERT to INSERT OR IGNORE:

cur.execute('INSERT OR IGNORE INTO oldposts VALUES(?)', [submID])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sqlite3,IntegrityError:插入值时唯一约束失败 的相关文章

  • 字典键中的通配符

    假设我有一本字典 rank dict V 1 A 2 V 3 A 4 正如您所看到的 我在一个 V 的末尾添加了一个 虽然 3 可能只是 V 的值 但我想要 V1 V2 V2234432 等的另一个密钥 我想检查它 checker V30
  • While 在范围内循环用户输入

    我有一些代码 我想要求用户输入 1 100 之间的数字 如果他们在这些数字之间输入一个数字 它将打印 Size input 并打破循环 但是 如果他们在外部输入一个数字1 100 它将打印 大小 输入 并继续向他们重新询问一个数字 但我遇到
  • Flask-migrate:更改模型属性并重命名相应的数据库列

    我对 Flask 有一些经验 但对数据库 Flask migrate alembic SqlAlchemy 不太了解 我正在跟进this https blog miguelgrinberg com post the flask mega t
  • 捕获 subprocess.run() 的输入

    我在 Windows 上有一个交互式命令行 exe 文件 是由其他人编写的 当程序出现异常时 它会终止 并且我对程序的所有输入都会丢失 所以我正在编写一个 python 程序 它调用一个阻塞子进程subprocess run 并捕获所有输入
  • python 排列有问题

    我在排列方面遇到一些问题 当谈到Python时 我真的是一个大菜鸟 所以任何帮助将不胜感激 假设我在文本文件中有一个范围为 1 6 的列表 例如 它看起来像 1 2 3 4 5 6 我想打开所述 txt 文件并计算这 6 个数字中 N 的所
  • 占据花车的地板

    我发现了两种在 Python 中占据发言权的方法 3 1415 1 and import math math floor 3 1415 第一种方法的问题是它返回一个浮点数 即3 0 第二种方法感觉很笨拙而且太长 在 Python 中是否有替
  • 如何找到多个 pandas 数据框中一对列与任意顺序对的交集?

    我有多个 pandas 数据框 为了简单起见 假设我有三个 gt gt df1 col1 col2 id1 A B id2 C D id3 B A id4 E F gt gt df2 col1 col2 id1 B A id2 D C id
  • 哪种方式最适合Python工厂注册?

    这是一个关于这些方法中哪一种被认为是最有效的问题 Pythonic 我不是在寻找个人意见 而是在寻找惯用的观点 我的背景不是Python 所以这会对我有帮助 我正在开发一个可扩展的 Python 3 项目 这个想法类似于工厂模式 只不过它是
  • “库例程调用不按顺序” sqlite3_prepare_v2(CREATE TABLE)

    你知道为什么我打电话时会收到 Library Routine Called Out Of Sequence 吗 sqlite3 prepare v2 CREATE TABLE 在空数据库上 我创建一个空数据库 然后打开它 后来我将所有必须写
  • SQLite更新第一个字母为大写

    我有一个字段 customer country 我正在尝试更新它 以便国家 地区值的第一个字母为大写 我似乎无法找到一种方法来做到这一点 UPDATE customer SET country UPPER SUBSTR country 1
  • sqlite 列名称引用(功能或错误)

    我遇到了一些对我来说看起来很奇怪的东西 但可能是我滥用了 sqlite3 create table t v 0 text insert into t values aa select from t v aa pragma table inf
  • 为什么 dataclasses.astuple 返回类属性的深层副本?

    在下面的代码中astuple函数正在执行数据类的类属性的深层复制 为什么它不能产生与函数相同的结果my tuple import copy import dataclasses dataclasses dataclass class Dem
  • 来自 dll 的 Java 调用函数

    我有这个 python 脚本导入zkemkeeperdll 并连接到考勤设备 ZKTeco 这是我正在使用的脚本 from win32com client import Dispatch zk Dispatch zkemkeeper ZKE
  • 打印包含字符串和其他 2 个变量的变量

    var a 8 var b 3 var c hello my name is var a and var b bye print var c 当我运行程序时 var c 会像这样打印出来 hello my name is 8 and 3 b
  • Python 3:将字符串转换为变量[重复]

    这个问题在这里已经有答案了 我正在从 txt 文件读取文本 并且需要使用我读取的数据之一作为类实例的变量 class Sports def init self players 0 location name self players pla
  • Android:无法使用 DbHelper 和 Contract 类将数据插入 SQLite

    public class Main2Activity extends AppCompatActivity private EditText editText1 editText2 editText3 editText4 private Bu
  • Python3 和 xml/xslt 库

    在 python 2 6 中 我这样做是为了实现 xsl 转换 import libxml2 import libxslt styledoc libxml2 parseFile my xslt file style libxslt pars
  • Python 时间序列聚合

    我有一个像这样的数据框 df project ID country prj start prj end revenue profit 2131 USA 201603 201703 100000 30000 5124 UK 201502 20
  • 一行Python和SQLite代码,为什么需要加“,”? [复制]

    这个问题在这里已经有答案了 c execute INSERT INTO numbers VALUES random randint 0 100 如果我将上面的代码更改为 c execute INSERT INTO numbers VALUE
  • 在数据库准备好之前运行 Jest 测试

    我正在使用 Jest 来测试我的带有 SQLite 数据库的 Express API 但是出现了以下问题 测试在数据库准备好并创建表之前运行 我使用以下代码连接到数据库 const connectToDatabase gt let db i

随机推荐

  • 如何使用 Spring JDBC 模板批处理在数据库中进行多次插入?

    我需要一次性在数据库中插入数千条记录 我在我的应用程序中使用 spring JDBC 模板 下面是我到目前为止编写的代码 它一次执行所有插入 因此 如果我有 10 000 个用户 他们就会一次性插入 但我想要的是批量执行它们 例如一批执行
  • Webclient:java.lang.OutOfMemoryError:直接缓冲内存

    我在 Web 客户端收到 java lang OutOfMemoryError Direct buffer memory 错误 批处理作业每天运行 两次失败 第三次就通过了 at org springframework retry supp
  • 按日期范围查询 dynamoDB

    我正在开发一个允许用户读书的应用程序 我正在使用 DynamoDB 来存储用户阅读的书籍的详细信息 并且我计划使用 DynamoDB 中存储的数据来计算统计数据 例如趋势书籍 作者等 我当前的架构如下所示 user id timestamp
  • Rails:如何让 Jquery 在单击后更新数据库列

    首先 我知道我正在尝试做的事情对于 Rails 来说并不典型 我愿意接受更好的替代方案的建议 我是 Rails 新手 所以欢迎提出建议 基本上 我有一个包含 5 个通知的通知栏 用户单击并看到通知后 我想将数据库中名为 saw 的列设置为
  • 片段和片段活动本质上比活动更快吗?

    片段和片段活动本质上比活动更快吗 如果我不需要在片段中加载我的活动 我应该使用 FragmentActivities 和 Fragments over Activity 吗 我问这个问题的原因是因为我多年来一直专门使用 Activity 而
  • Java 8 可选和 flatMap - 有什么问题?

    一些代码 public class Player Team team String name public class Team List
  • TDD 如何处理模拟对象中的更改

    在编写单元测试时 对于单元与之交互的每个对象 我正在采取这些步骤 从我对 JBrains 的理解中窃取 集成测试是一个骗局 http www infoq com presentations integration tests scam 在单
  • Grunt cssmin / CleanCSS 源映射变基

    我使用 cssmin 和以下 内容 文件夹结构 src dir1 style1 css images image1 png dir2 style2 css images image2 png dist styles min css styl
  • Chrome 不显示网站图标

    我无法显示该网站的图标http www lowcoupling com http www lowcoupling com在铬上 我已经用 Safari 检查过 图标显示正确 我应该如何修复它 UPDATE 这是我的 css 的第一部分
  • 用于执行外部 MSBuild 文件的 MSBuild 任务

    我正在尝试设置一个 MSBuild 文件 该文件将调用另一个 MSBuild 文件 我想知道实现此目的的最佳方法是什么 我们在构建服务器下载 MSBuild 文件的情况下使用它 然后根据参数执行相应的第二个文件 我知道我可以使用
  • 针对 Windows Phone ARM 目标的 Clang 交叉编译

    我想使用 Clang 为 Windows Phone ARM 目标编译一个用 C 编写的程序 有人有这方面的经验吗 什么是更好的方法 1 使用 Clang for Windows 和 MinGW 在运行 Windows 8 的主机上构建 C
  • 确定分发这些优惠券的最佳方式的算法是什么?

    这是我的问题 假设我要购买 3 种不同的商品 并且我最多有 5 张优惠券 优惠券可以互换 但用于不同商品时价值不同 以下矩阵给出了在不同商品上花费不同数量的优惠券的结果 coupons 1 2 3 4 5 item 1 10 off 15
  • Flutter Google 地图无法确定设备的当前位置

    我使用 Flutter 的 Geolocator 和 Google Maps 包来确定设备的位置 我利用圆形进度条来等待确定当前位置 一旦确定 Google 地图就会加载已识别的设备位置 当应用程序加载时 会显示圆形进度条 但尽管显示并接受
  • Symfony + Doctrine - 定义完整性约束错误时的错误消息

    当我尝试删除项目时出现完整性约束错误时 我试图显示一条不错的错误消息 我只想显示如下消息 而不是出现错误 500 您无法删除此内容 因为某些项目已链接到它 我已经搜索了一段时间 但我总是找到 如何解决此错误 的解决方案 我不想解决它 我只是
  • 跟踪表中的更改

    我的同事向我提出了一个我无法回答的问题 由于缺乏经验 该问题与跟踪表上相关字段的更改有关 假设我们有 3 个表 每个表有 20 个字段 让我们考虑一下这个示例 其中每个表都有 2 个字段 一个名为 LastUpdatedOn 另一个名为 L
  • 如何在字符串中存储颜色?

    如果颜色是人类可读格式 我想将颜色存储在字符串中 如果不是 则将其存储在 ToArgb 中 颜色是红色 然后将其存储在 Red 字符串中 如果颜色是绿色的某种变体 则将其存储为 ff40ff80 在运行时我想将此字符串转换回 Color 类
  • Rails 路由 - 如何将范围参数添加到 url_for 帮助器?

    我有资源生物 在视图和添加新生物的链接中是 link to Add new bio new admin bio 如果我将资源 bio放入这样的范围 namespace admin do scope bio type defaults gt
  • 使用 AutoMapper 映射字典

    鉴于这些类 我如何映射它们的字典 public class TestClass public string Name get set public class TestClassDto public string Name get set
  • Spring boot - 不是托管类型

    我使用 Spring boot JPA 并在启动服务时遇到问题 Caused by java lang IllegalArgumentException Not an managed type class com nervytech dia
  • sqlite3,IntegrityError:插入值时唯一约束失败

    为了防止我的数据库变得太大 我希望 sqlite 只插入尚未插入的值 我做了一些搜索 并认为最好的方法是使用 UNIQUE 约束 在我看来 插入不唯一的值时 sqlite 会崩溃 如何避免此错误并继续下一次提交 下面是一些相关代码 sql