Python 如何使用sqlite3更新本例中的唯一值?
我有一张桌子:Python 如何使用sqlite3更新本例中的唯一值?,python,sqlite,Python,Sqlite,我有一张桌子: CREATE TABLE IF NOT EXISTS "{subject}" ( id INTEGER PRIMARY KEY, text TEXT, fileid TEXT, date TEXT, author TEXT); 我想将所有id值增加一个: UPDATE "{subject}" SET id = id + 1 这给了我唯一约
CREATE TABLE IF NOT EXISTS "{subject}" (
id INTEGER PRIMARY KEY,
text TEXT,
fileid TEXT,
date TEXT,
author TEXT);
我想将所有id
值增加一个:
UPDATE "{subject}" SET id = id + 1
这给了我唯一约束失败的错误
如果我需要在以这种方式增加值的同时保持唯一性,我应该怎么做
更新:
我希望它基本上是这样的:
-1, 0, 1
update()
0, 1, 2
也许我应该复制没有唯一约束的表,更新值,然后再复制回来?可能有点奇怪,但您可以尝试:首先更新id=id+100,然后更新id=id-99,这样就不会破坏约束。您必须使用足够大的数字/数字-1,以防止约束发生Ptit Xav 36分钟前由于id是主键,可以定义为id整数主键自动递增,因此它将自动递增。因此,您的insert语句将类似于insert into subject(文本、文件id、作者)值(?、、?),并且您的id将自动增加。@simpleApp我希望在需要时更新这些值,如下所示:-1,0,1 update()0,1,2okay,因为您已设置主键,它也将带来自己的约束(唯一性)。如果要添加现有字段,然后再添加+1,我建议为此在表中添加一个新字段。@simpleApp我需要更新该字段,而不是另一个字段可能很奇怪,但您可以尝试:首先更新id=id+100,然后更新id=id-99,这样就不会打破约束。必须使用足够大的数字/数字1,以防止发生约束。