Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 10-30-2009, 05:56 PM
mhackl mhackl is offline
 
Join Date: Aug 2006
Posts: 145
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default SQL query to change userid's by one digit.

Since I migrated to a new installation of vbulletin userid's are off by one digit due to the new installs "admin"account. What query would I run to change every userid by one digit?
Reply With Quote
  #2  
Old 10-31-2009, 05:29 PM
gmerin gmerin is offline
 
Join Date: Dec 2008
Posts: 78
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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;
Reply With Quote
  #3  
Old 11-05-2009, 04:02 AM
mhackl mhackl is offline
 
Join Date: Aug 2006
Posts: 145
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thank you very much for your response!

Quote:
Originally Posted by gmerin View Post
which is why there are vb migration programs/scripts for doing these sort of tasks.
Are you speaking of impex? If so, this problem is a result of impex. if not, what scripts are you speaking of?
Reply With Quote
  #4  
Old 11-07-2009, 05:49 PM
gmerin gmerin is offline
 
Join Date: Dec 2008
Posts: 78
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

ok, since you have mysql v5.0.2+ you can query the information_schema. how to do this would involve writing a book, luckily someone already has:http://dev.mysql.com/tech-resources/...dictionary.pdf

what you want to do is join information_schema.tables to information_schema.columns, select those tables in the vbulletin schema that have the userid column, then update userid from each of those tables with the modified userid from the table user as you loop thru the user table modifying the userids in it.

in other dbms (like oracle & sql server) i would do this with multiple cursors. i'll see what i can come up with for mysql later this week. in php you would do this with the mysql_fetch_row command {but doing it in sql is more challenging and therefore, more fun }
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 05:29 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.03760 seconds
  • Memory Usage 2,188KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (4)post_thanks_box
  • (4)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (4)post_thanks_postbit_info
  • (4)postbit
  • (4)postbit_onlinestatus
  • (4)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete