我有一個表遞增值導致約束錯誤
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
我得到的錯誤:
無法執行語句由於constaint失敗(19約束失敗)
我的猜測是,它增加每個行,並且當它通過將其設置爲1
來遞增第一個時,已經有一行的1
,因此失敗。
在標準代碼中,這將通過向後遍歷集合來解決,有什麼辦法可以在Sqlite中做到這一點?有沒有不同的方式去做這件事?
看看這個:http://stackoverflow.com/questions/1884787/how-do-i-drop-a-constraint-from-a-sqlite-3-6-21-table。 –