Pserver Accounts löschen

07/29/2012 12:47 drachenfeuer95#1
Hallo Leute
Ich habe vor, meine DB mal ein bisschen aufzuräumen, weil ich mittlerweile meine Register und Login Scripts usw fertig habe. Zudem möchte ich, wenn möglich die Möglichkeit bieten, Accounts zu löschen. Habt ihr eine Idee wie ich das am besten anstelle? Ich könnte natürlich auch die ganzen DB's droppen aber das wäre ja nicht der Sinn der Sache.

Gruss drachenfeuer95
07/29/2012 12:51 SonGoku.#2
lösch sie bei ACCOUNT_TBL und dann Tabelle öffnen alle markieren und löschen
07/29/2012 13:01 ©ross#3
u.a fällt mir hier jetzt diese Query ein:
Code:
USE [ACCOUNT_DBF]
GO
DELETE FROM ACCOUNT_TBL WHERE account = 'ACCNAME'
DELETE FROM ACCOUNT_TBL_DETAIL where account = 'ACCNAME'
DELETE FROM AccountPlay WHERE Account = 'ACCNAME'
GO
oder für alle:
(sollte funzen bin mir aber nich 100% sicher)
Code:
USE [ACCOUNT_DBF]
GO
DELETE FROM ACCOUNT_TBL WHERE
DELETE FROM ACCOUNT_TBL_DETAIL
DELETE FROM AccountPlay
GO
Die query's könnte man dann quasi auch in ein ACP einbauen^^
07/29/2012 13:17 drachenfeuer95#4
Hab einfach mal das hier ausgeführt:
Code:
USE [ACCOUNT_DBF]
GO
DELETE FROM ACCOUNT_TBL WHERE
DELETE FROM ACCOUNT_TBL_DETAIL
DELETE FROM AccountPlay
GO
Ergebnis: Inkonsistenz, da ich jetzt Charakter habe die auf nicht vorhandene Account IDs referenzieren.. :(

Das gleiche gilt für diverse weitere Tabellen wie die Bank usw...
07/29/2012 14:32 ©ross#5
Die Frage war ja nur "Wie löscht man Accounts" ;)

Probiere dieses Script mal aus (Grade fix gebaut)
Dabei kannst du immer nach der Player ID löschen lassen - oder eben den "WHERE" fall wegnehmen um alles zu löschen :)

PHP Code:

--CHARACTER DELETE BY CROSS
USE [CHARACTER_01_DBF]
GO
DELETE FROM dbo
.BANK_EXT_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.BANK_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.BILING_ITEM_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.CARD_CUBE_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.CHARACTER_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.CHARACTER_TBL_DEL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.GUILD_MEMBER_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.INVENTORY_EXT_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.INVENTORY_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.ITEM_REMOVE_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.ITEM_SEND_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.MAIL_TBL WHERE [idReceiver] = 'PLAYER_ID'
DELETE FROM dbo.MAIL_TBL WHERE [idSender] = 'PLAYER_ID'
DELETE FROM dbo.MESSENGER_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.PARTY_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.QUEST_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.RAINBOWRACE_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.SECRET_ROOM_MEMBER_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.SKILLINFLUENCE_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.TASKBAR_ITEM_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.TASKBAR_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.tblCampusMember WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.tblChangeBankPW WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.tblHousing WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.tblHousing_Visit WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.tblLogout_Penya WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.tblLordCandidates WHERE [idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.tblLordEvent WHERE [idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.tblMaster_all WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.tblMessenger WHERE [idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.tblPocket WHERE [idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.tblPocketExt WHERE [idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.tblRestPoint WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.tblSkillPoint WHERE [PlayerID] = 'PLAYER_ID'
DELETE FROM dbo.WANTED_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
GO 
07/29/2012 15:05 drachenfeuer95#6
Quote:
Originally Posted by ©ross View Post
Die Frage war ja nur "Wie löscht man Accounts" ;)

Probiere dieses Script mal aus (Grade fix gebaut)
Dabei kannst du immer nach der Player ID löschen lassen - oder eben den "WHERE" fall wegnehmen um alles zu löschen :)

PHP Code:

--CHARACTER DELETE BY CROSS
USE [CHARACTER_01_DBF]
GO
DELETE FROM dbo
.BANK_EXT_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.BANK_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.BILING_ITEM_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.CARD_CUBE_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.CHARACTER_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.CHARACTER_TBL_DEL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.GUILD_MEMBER_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.INVENTORY_EXT_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.INVENTORY_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.ITEM_REMOVE_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.ITEM_SEND_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.MAIL_TBL WHERE [idReceiver] = 'PLAYER_ID'
DELETE FROM dbo.MAIL_TBL WHERE [idSender] = 'PLAYER_ID'
DELETE FROM dbo.MESSENGER_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.PARTY_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.QUEST_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.RAINBOWRACE_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.SECRET_ROOM_MEMBER_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.SKILLINFLUENCE_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.TASKBAR_ITEM_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.TASKBAR_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.tblCampusMember WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.tblChangeBankPW WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.tblHousing WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.tblHousing_Visit WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.tblLogout_Penya WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.tblLordCandidates WHERE [idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.tblLordEvent WHERE [idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.tblMaster_all WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.tblMessenger WHERE [idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.tblPocket WHERE [idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.tblPocketExt WHERE [idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.tblRestPoint WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM dbo.tblSkillPoint WHERE [PlayerID] = 'PLAYER_ID'
DELETE FROM dbo.WANTED_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
GO 
Hei danke :)
aber wie siehts denn aus mit den einträgen in der Logging DB? ;)
auch diese tables haben keys auf die playerids ;(
ich glaube bei dem spiel ist es nicht gedacht acc's löschen zu können..
07/29/2012 16:05 ©ross#7
Für Log hab ich gerade mal geschaut:
PHP Code:
-- LOGGING CLEAR by Cross ;)
USE [
LOGGING_01_DBF]
GO
DELETE FROM 
[dbo].[CHARACTER_TBLWHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM [dbo].LOG_CHARACTER_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM [dbo].LOG_DEATH_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM [dbo].LOG_GAMEMASTER_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM [dbo].LOG_GUILD_BANK_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM [dbo].LOG_GUILD_DISPERSION_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM [dbo].LOG_GUILD_SERVICE_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM [dbo].LOG_GUILD_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM [dbo].LOG_GUILD_WAR_TBL -- no Player
DELETE FROM 
[dbo].LOG_HONOR_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM [dbo].LOG_ITEM_EVENT_TBL WHERE [m_szName] = 'PLAYER_NAME' -- NAME NOT ID!!
DELETE FROM [dbo].LOG_ITEM_REMOVE_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM [dbo].LOG_ITEM_SEND_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM [dbo].LOG_ITEM_TBL WHERE [m_szName] = 'PLAYER NAME' -- NAME NOT ID!!!
DELETE FROM [dbo].LOG_LEVELUP_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM [dbo].LOG_LOGIN_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM [dbo].LOG_PK_PVP_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM [dbo].LOG_UNIQUE_TBL WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM [dbo].LOG_USER_CNT_TBL -- NO PLAYER ID DELETE ALL
DELETE FROM 
[dbo].tblCampus_PointLog WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM [dbo].tblCampusLog WHERE [m_idMaster] = 'PLAYER_ID' -- Campus System Master
DELETE FROM 
[dbo].tblCampusLog WHERE [m_idPupil] = 'PLAYER_ID' -- CAMPUS SYSTEM PUPIL
DELETE FROM 
[dbo].tblChangeNameHistoryLog WHERE [idPlayer] = 'PLAYER_ID'
DELETE FROM [dbo].tblChangeNameLog WHERE [idPlayer] = 'PLAYER_ID'
DELETE FROM [dbo].tblLogExpBox WHERE [idPlayer] = 'PLAYER_ID'
DELETE FROM [dbo].tblPetLog WHERE [idPlayer] = 'PLAYER_ID'
DELETE FROM [dbo].tblQuestLog WHERE [idPlayer] = 'PLAYER_ID'
DELETE FROM [dbo].tblQuizAnswerLog WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM [dbo].tblQuizUserLog WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM [dbo].tblSkillPointLog WHERE [PlayerID] = 'PLAYER_ID'
DELETE FROM [dbo].tblSystemErrorLog WHERE [m_idPlayer] = 'PLAYER_ID'
DELETE FROM [dbo].tblTradeDetailLog WHERE [idPlayer] = 'PLAYER_ID'
DELETE FROM [dbo].tblTradeItemLog WHERE [idPlayer] = 'PLAYER_ID'
GO 
Wie auch vorher: Für ALLES einfach den WHERE teil abschneiden ansonsten ID oder )bei manchen) den Charnamen eintragen.

@All: Falls ich ne Table vergessen habe einfach sagen :x