Seite 1 von 1

SQL-Befehl um nur die user_posts zu kopieren

Verfasst: 08.05.2010 11:34
von 7emper5i
Hallo,

ich habe vor einigen Tagen die Resynchronisierung der User-Beiträge durchgeführt und nun fehlen einigen Usern bis zu 3000! Beiträgen, die sie in den letzten 5 Jahren aber tatsächlich geschrieben haben.


Ein einfaches Rückspielen der SQL-Tabelle phpBB_user funktioniert nicht, da dann auch die Daten der letzten Einträge, etc "falsch" übernommen werden.


Gibt es einen Befehl, NUR die User_posts zu sichern und diese dann in die andere DB per phpMyAdmin zu schubsen?

Gruß
Philipp

Re: SQL-Befehl um nur die user_posts zu kopieren

Verfasst: 08.05.2010 12:29
von schnagga
Der MySQLDumper sollte das können:
http://www.mysqldumper.de/tuts/de/phpba ... ackup.html

Re: SQL-Befehl um nur die user_posts zu kopieren

Verfasst: 08.05.2010 15:38
von 7emper5i
Danke, habe ich schon gemacht. Problem ist aber, dass der Nr de gesamte Tabelle übernimmt und ich aus der Tabelle nur die posts übernommen haben muss.

Das ist das Problem

Re: SQL-Befehl um nur die user_posts zu kopieren

Verfasst: 08.05.2010 15:41
von Mahony
Hallo
Eventuell hilft dir das hier weiter Beiträge Wiederherstellen mit Datenbank-Backup

P.S. Achtung: Bevor man anfängt, sollte man unbedingt ein Datenbank-Backup der aktuellen Datenbank mit dem Mysqldumper anlegen.


Grüße: Mahony

Re: SQL-Befehl um nur die user_posts zu kopieren

Verfasst: 08.05.2010 17:33
von aurora876
7emper5i hat geschrieben:Danke, habe ich schon gemacht. Problem ist aber, dass der Nr de gesamte Tabelle übernimmt und ich aus der Tabelle nur die posts übernommen haben muss.

Das ist das Problem

nö, wenn du auswählst, das du nur bestimmte tabellen sichern willst, macht der dumper das auch.
mußt halt das häckchen setzen, dann klappts auch mit der tabelle.

Re: SQL-Befehl um nur die user_posts zu kopieren

Verfasst: 09.05.2010 01:49
von 7emper5i
Da hast du Recht, aber meine Frage - oder Feststellung spricht dem nicht entgegen.

MySQLDumper kann eine Tabelle aus der gesamten Datenbank sichern / wiederherstellen.

Von dieser einen Tabelle, benötige ich aber für ALLE UserID's nur jeweils EINEN Wert.

Und zwar von phpBB_users

Code: Alles auswählen

vollständige Textfelder  	
user_id   	 
user_type   	 
group_id   	 
user_permissions   	 
user_perm_from   	 
user_ip   	 
user_regdate   	 
username   	 
username_clean   	 
user_password   	 
user_passchg   	 
user_pass_convert   	 
user_email   	
 user_email_hash   	 
user_birthday   	 
user_lastvisit   	 
user_lastmark   	 
user_lastpost_time   	 
user_lastpage   	 
user_last_confirm_key   	 
user_last_search   	 
user_warnings   	 
user_last_warning   	 
user_login_attempts   	 
user_inactive_reason   	 
user_inactive_time   	 
user_posts   	 
user_lang   	 
user_timezone   	
 user_dst   	 user_dateformat   	 user_style   	 user_rank   	 user_colour   	 user_new_privmsg   	 user_unread_privmsg   	 user_last_privmsg   	 user_message_rules   	 user_full_folder   	 user_emailtime   	 user_topic_show_days   	 user_topic_sortby_type   	 user_topic_sortby_dir   	 user_post_show_days   	 user_post_sortby_type   	 user_post_sortby_dir   	 user_notify   	 user_notify_pm   	 user_notify_type   	 user_allow_pm   	 user_allow_viewonline   	 user_allow_viewemail   	 user_allow_massemail   	 user_options   	 user_avatar   	 user_avatar_type   	 user_avatar_width   	 user_avatar_height   	 user_sig   	 user_sig_bbcode_uid   	 user_sig_bbcode_bitfield   	 user_from   	 user_icq   	 user_aim   	 user_yim   	 user_msnm   	 user_jabber   	 user_website   	 user_occ   	 user_interests   	 user_actkey   	 user_newpasswd   	 user_form_salt   	 user_new   	 user_reminded   	 user_reminded_time   	 user_articles
nur die user_posts . Und da suche ich eine Möglichkeit, aus der Sicherung der user_posts alle unrelevanten Daten per SQL-Befehl zu droppen und dann nur die "neuen" Werte zu übernehmen.

Ich versuche das mal, was Mahony vorgeschlagen hat, aber wie definiere ich alle Felder, die gedroppt werden können?

Re: SQL-Befehl um nur die user_posts zu kopieren

Verfasst: 09.05.2010 10:47
von aurora876
haben sich die werte in den spalten derat verändert?

ich weiß ja nicht, wieviele user du hast, aber mit
ALTER TABLE `phpbb_posts` DROP wasauchimmer-spalte usw. usw.

könnt es gehen. bin nicht so der SQL-profi, daher sollte da lieber noch einer mit mehr knowhow drübergucken.
so oder so: du solltest unbedingt vorher ein backup machen :)

Re: SQL-Befehl um nur die user_posts zu kopieren

Verfasst: 09.05.2010 11:00
von 7emper5i
ja, Backup mach ich eh, danke für den mehrfachen Hinweis.. und ich teste natürlich vorher auch.

Ja, die Daten haben sich immens geändert, aufgrund der Resynchronisation. Warum auch immer?!

Es fehlen Usern bis zu 3000 Beiträgen.


Ich habe ein Backup in dem noch annähernd korrekte Daten drin sind - mit jedem Tag variieren die Daten natürlich auch, aber da wird es dann auch nur wichtig, den oberen 15 gerecht zu werden.


Ich brauche also eine Möglichkeit, mithilfe von MySQlDumper alleine die Werte user_posts auszulesen und in der anderen DB zu überschreiben.

Re: SQL-Befehl um nur die user_posts zu kopieren

Verfasst: 10.05.2010 10:02
von 7emper5i
Danke für deinen Ratschlag Mahony.

Mit einem Script hat es dann geklappt.