首页 > 解决方案 > 唯一约束失败的sqlite

问题描述

在更改表之前,我想对其进行备份,因此我使用以下代码:

CREATE TABLE states_BACKUP (
    state_id INTEGER NOT NULL, 
    domain VARCHAR(64), 
    entity_id VARCHAR(255), 
    state VARCHAR(255), 
    attributes TEXT, 
    event_id INTEGER, 
    last_changed DATETIME, 
    last_updated DATETIME, 
    created DATETIME, 
    context_id VARCHAR(36), 
    context_user_id VARCHAR(36), old_state_id INTEGER, 
    
    PRIMARY KEY (state_id), 
    FOREIGN KEY(event_id) REFERENCES events (event_id)
);
INSERT into states_BACKUP
Select  * 
FROM STATES;

但是,当执行插入部分时,会出现一条错误消息:执行完成但出现错误。结果:UNIQUE 约束失败:states_BACKUP.state_id 第 18 行:INSERT into states_BACKUP Select * FROM STATES;

当我将代码更改为

Select distinct * 
FROM STATES;

我得到同样的错误。

试图在网上找到如何解决这个问题的答案,我发现这个错误与重复的 ID 有关。我想知道当我只是复制一张表时会发生这种情况。

有人对此有解决方案吗?

标签: sqliteconstraints

解决方案


推荐阅读