我正在为大学做家庭作业,我需要将值设置为新创建的列,但它必须从一个特定的数字开始,在这种情况下为40000000,所以它将是这样的:
ID ║ Column to populate ║ FirstName ║ LastName ║
1 40000000 John Smith
2 40000001 John Walker
3 40000002 John Locke
and etc...
我想这与以下查询有关:
更新[table_name] SET [column_name] = [column_name] +1;
但这显然不是从我想要的号码开始的。
也许这是一个愚蠢的问题,但是我在Google上搜索了一下,但找不到与我需要的东西相关的任何东西,因此我们非常感谢您的帮助。谢谢!!!
这是使用窗口函数的一个选项:
update mytable t
inner join (
select id, row_number() over(order by id) rn
from mytable t1
) t1 on t1.id = t.id
set t.new_col = 3999 + t1.rn
以防万一:如果id
从开始处1
无间隙地递增,那么它就更简单了:
update mytable set new_col = 3999 + id
不过,我认为这并不安全:id
看起来像一auto_increment
列,并且这样的列不能保证没有间隙。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句