You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复SQLite复合主键问题以实现数据正常插入?

解决SQLite组合主键设置问题

你遇到的报错是因为误将ID和日期字段设为独立主键,而非组合主键。SQLite中如果单独给每个字段勾选主键,会要求每个字段自身的值必须唯一,但你需要的是ID与日期的组合值唯一,各自允许重复。

解决方法分两种场景:


场景1:重新创建表(推荐)

  • 打开DB Browser for SQLite,进入「Create Table」界面
  • 添加ID和date字段(date字段建议用TEXT类型存储YYYY-MM-DD格式的日期,SQLite无原生DATE类型)
  • 不要单独给两个字段勾选「Primary Key」,转而在界面下方的「Table Constraints」区域添加约束:
    PRIMARY KEY ("ID", "date")
    
  • 点击「OK」完成表创建,此时只有ID+日期的组合重复时,才会触发唯一约束。

场景2:修改已存在的表

SQLite不支持直接修改现有表的主键约束,需按以下步骤操作:

  1. 导出原表的数据(可导出为CSV或SQL脚本)
  2. 在「Database Structure」面板右键原表,选择「Drop Table」删除旧表
  3. 按照场景1的方法创建带组合主键的新表
  4. 重新导入之前导出的数据

验证效果

插入测试数据:

  • 插入ID=1, date='2024-01-01'和ID=1, date='2024-01-02':不会报错,符合各自字段允许重复的需求
  • 重复插入ID=1, date='2024-01-01':会触发唯一约束报错,符合组合唯一的要求

内容的提问来源于stack exchange,提问作者Birdie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 14:12:39