On 02/06/07, jidanni(a)jidanni.org <jidanni(a)jidanni.org> wrote:
If the user has made edits, then removing rows from the user table
cause theoretical loss of referential integrity. Now, to be honest
with you, I can't think of any conditions where this would cause an
actual problem; "undefined behaviour" is the phrase we use.
What I'd suggest doing, to be on the safe side, is running a couple of
quick updates against the database:
UPDATE revision SET rev_user = 0 WHERE rev_user = <current_user_id>
UPDATE archive SET ar_user = 0 WHERE ar_user = <current_user_id>
What this will do is cause MediaWiki to treat the revisions as having
been made anonymously when generating things like page histories,
which should eliminate any problems caused by these routines
attempting to check user details from other tables.
If the user has caused log entries, i.e. rows in the logging table, or
uploaded images, then the situation becomes trickier, as you'll have
to start mopping up all the rows everywhere and it could become a bit
of a mess, so if the user's done anything other than edit, I would
strongly recommend just blocking them indefinitely.
If the username is offensive or undesirable, then you could consider
renaming it using the RenameUser extension.
I suppose the next user to register will inherit his
user number,
which means anything else in the database then is attributed to the
new user, e.g., the deleted pages...
No; the next user to register will receive the next sequence value for
users.user_id (which is not the same thing as the next unused number),
and will not have those edits attributed to him.
Rob Church