我有一个带有列的表:
[id,name,public_id]
该表实际上包含
[1,john,0] [2,sara,0] [3,jack,0] .....
我想将第三列更改为1050,1051,1052 ....
[1,john,1050] [2,sara,1051] [3,jack,1052] .....
我该如何进行更新?
一些注意事项:公共ID必须超过1049,并且必须是连续的。例如,对于100行,public_id必须为[1050 .... 1149]
提前致谢
假设表的名称为TEST_TABLE,此MySQL语法将使用从1500开始的连续值(并按ID的顺序)更新PUBLIC_ID:
REPLACE INTO TEST_TABLE SELECT TEST_TABLE.ID, TEST_TABLE.NAME, @ROWNUM := @ROWNUM + 1 FROM TEST_TABLE, (SELECT @rownum := 1499) R ORDER BY ID
简而言之:
警告:根据MySQL文档,REPLACE实际上会在再次插入重复行之前删除重复的行(而不是仅更新已修改的字段),在存在外键的情况下,这可能是一个问题。
( 不确定SQLite,但我猜您可以采用类似的一般思路。 )