Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用sqlite3更新本例中的唯一值?_Python_Sqlite - Fatal编程技术网

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,以防止发生约束。