this will change the userid, but i'm pretty certain that's not what you really want, since the rows in the other tables tend to relate the users' data by the userid so changing it in just one table will just screw up your board. i'm figuring what you really want to do is to increment the userid in all the impacted tables, which is why there are vb migration programs/scripts for doing these sort of tasks.
but in case you want to see the sql for just what you asked...
--assuming you have sql access to your mysql instance, first, this will show you what the update sql statement will do without making the change:
select a.userid, a.userid+1 from user a
order by a.userid;
--this will make the change (a.userid+x increments; a.userid-x decrements):
update user a
set a.userid = a.userid+1 ;
--if you want to limit or qualify the changes:
update user a
set a.userid = a.userid+1
where <fieldname> = <some appropriate qualifier value> ;
--for example, modify every userid except userid=1:
update user a
set a.userid = a.userid+1
where a.userid > 1;
--always back up the table first:
create table user_bak as
select a.* from user a;
--if you make a mistake and need to restore the original table:
truncate table user;
insert into user
select * from user_bak;
|