sqlite 如何修复我的超级密钥插入数据库中的数据?

8gsdolmq  于 2023-08-06  发布在  SQLite
关注(0)|答案(1)|浏览(138)

我的SQLite表使用ID号和日期作为主键/超级键。该组合应该是唯一的,但在其各自的列中可以有重复的组合。
我正在使用DBrowser for SQLite。在创建表时,我选中了ID号和日期的主键框。当我尝试向表中插入时,我得到:
从记录编号导入数据时出错...插入行失败:UNIQUE约束失败:表格。ID,table.date
如何解决这个问题?

s4n0splo

s4n0splo1#

您遇到的错误表明表中ID和日期列的组合存在重复值,这违反了主键定义的UNIQUE约束。在将数据导入表之前,首先尝试删除重复的条目。
然后需要修改主键约束:

-- Drop the existing primary key constraint
ALTER TABLE Mytable DROP CONSTRAINT PK_Mytable;

-- Add a new unique constraint for ID and date combination
ALTER TABLE Mytable ADD CONSTRAINT UQ_Mytable_ID_date UNIQUE (ID, date);

字符串
或者使用复合主键:

-- Create the table with a composite primary key
CREATE TABLE Mytable (
  ID INTEGER,
  date TEXT,
  -- Other columns...
  PRIMARY KEY (ID, date)
);


只需选择最适合您要求的选项。

相关问题