【发布时间】:2014-03-19 00:55:52
【问题描述】:
我创建了一个表
CREATE TABLE `tests` (`num` INTEGER UNIQUE, value VARCHAR(255))
我在其中添加了两行:
INSERT INTO `tests` VALUES(0, "a")
INSERT INTO `tests` VALUES(1, "b")
我现在的目标是插入一行 num = 0,但要做到这一点,我需要将这两行的索引向上移动。
当我执行时:
UPDATE `tests` SET `num` = `num` + 1 WHERE `num` >= 0
我得到错误:
由于约束失败而无法执行语句(19个约束失败)
我的猜测是它正在递增每一行,当它通过将第一行设置为1 来递增第一行时,已经有一行具有1 的num,因此失败。
在标准代码中,这将通过向后迭代集合来解决,在 Sqlite 中有没有办法做到这一点?有没有其他方法可以解决这个问题?
【问题讨论】: