我可以使用auto_increment(mysql)更新所有主键表吗?

时间:2018-05-21 01:21:29

标签: mysql sql database sql-update

我想使用从25开始的自动增量(例如)更改具有大量行(大约3K)的表中的所有主键,但仅限于满足某个特定条件的行。有可能的 ?。这是表格的一个例子:

create table place( 
   code int auto_increment,
   type varchar(10) not null,
   name varchar(50) not null,
   fk_place int,
   constraint pk_place primary key (code),
   constraint fk_place_place foreign key (fk_place) references place(code)
 );

我想要更新,例如,所有“城市”行只更改主键但从25开始

1 个答案:

答案 0 :(得分:1)

尝试使用变量。将其设置为小于您想要开始的值的一个,并使用一个表达式为<div style="vertical-align:middle;"> <asp:LinkButton ID="REQUEST_TAB_LINKBUTTON" runat="server" style="text-decoration:none" BackColor="#CCCCCC" Font-Names="Arial" Font-Size="X-Large">&nbsp;Ask&nbsp;for&nbsp;help&nbsp;</asp:LinkButton> </div> SET的右侧增加变量。

UPDATE

但是,您必须小心,不要使用SET @i = 24; UPDATE place SET code = @i := @i + 1 WHERE <your_condition>; 或任何后来UPDATE生成欺骗。可能会使用INSERT设置下一个值,该值将用于下一个ALTER TABLE place AUTO_INCREMENT = <new next value>;