Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo,

ich möchte 2 Datenbanken die sich ähnlich sind , miteinander vergleichen und die unterschiede in einer Protokolldatei ausgeben lassen...

Leider hab ich momentan noch keine richtige Idee , wie ich dies angehen könnte.

Ich möchte kein fertiges Tool dafür haben ;)

Ich hoffe es kann mir jemmand Anregungen geben :)

mfg

Lati

naja du kannst dir mit einem sql befehl (je nach dbms unterschidlich) alle tabellen ausgeben lassen.

- Suche nach gleich bennanten tabellen

- Suche in gleichen tabellen nach gleichen spalten

- suche in gleichen spalten nach den identischen zeilen

Aber mal im ernst um welches dbms handelt es sich und womit willst du das durchführen?

C++ ? Java? C# ...

mit xampp und php..

ich bin noch in der lernphase, also hab noch nicht viel vorher damit zutun gehabt.

wie kann ich dies umsetzen..mit imports oder anderen befehlen..

ich hab 2 datenbanken, die haben bestimmt minimum 20 tabellen...für den anfang wollt ich mir erstmal 2 datenbanken mit jeweils 1 tabelle vornehmen um die grundstruktur zu verstehen.

wie kann ich dies umsetzen?

mit xampp und php..

das eine ist ein softwarepaket, das andere eine scriptsprache.

DBMS sind das keine. aber ich nehme an das soll heissen, du verwendest MySQL?

s'Amstel

ja klar :D vergessen zu erwähnen

Ich kann mich da den Vorrednern nur anschließen, Du musst eben datenbankweise, alle Tabellen, Feldtypen, -längen und -inhalte durchlaufen und gegen die andere Datenbank abgleichen und dann Abweichungen entsprechend protokollieren. Ist recht ineffizient bei großen Datenbanken.

Du baust entsprechend zu beiden Datenbanken via PHP eine Verbindung auf, setzt die entsprechende SQL Statements ab und verarbeitest die Ergebnisse, die Dir geliefert werden. Schau Dir dazu einmal die mysql Funktionen von PHP an und eben den mySQL Syntax (ggf. empfehle ich Dir noch die ADODB Schnittstelle von PHP)

Phil

das projekt ist wichtig und für sie schule...habe mich mit euren vorschlägen befasst, komme aber nicht weiter.. könnt ihr mir evtl einige beispiel-quellcode-zeilen posten wie man die inhalte von 2 datenbanken vergleicht? :confused:

MfG lati


mysql_connect("localhost","root");

mysql_select_db("scan");

$abfrage = "SELECT * FROM cpu;";

$ergebnis = mysql_query($abfrage);


mysql_connect("localhost","root");

mysql_select_db("scan1");

$abfrage2 = "SELECT * FROM cpu;";

$ergebnis2 = mysql_query($abfrage2);


if(ergebnis!=ergebnis2)

{

 echo'Unterschied in Tabelle CPU';

 echo '<br>';

}

else

{

 echo'kein Unterschied in Tabelle CPU';

 echo '<br>';

}

damit hab ich es mal probiert..

aber egal ob die tabellen in den beiden db's gleich sind oder nicht, ich bekomm immer "Unterschied in Tabelle CPU" ausgegeben..

Danke

MfG

lati

Bearbeitet von lati

danke für deine antwort...

aber ich kann damit nicht wirklich was anfangen.. wie gesagt ich bin anfänger..

was genau soll falsch sein? ich tippe auf

$ergebnis = mysql_query($abfrage);

mfg lati

was genau muss ich denn ändern??

komm da grad nicht ganz hinterher..

danke schonmal für deine hilfe :-)

mfg lati

Hallo,

ich glaub wir würden dir alle gerne weiterhelfen, aber es scheinen noch grundlegende Kenntnisse in der Programmierung und der SQL zu liegen.

Falls du es noch nicht kennst, würde ich dir gern dieses Tutorial ans Herz legen: Quakenet PHP Tutorial

Ab Kapitel 27 wird nochmal in aller Kürze die Sprache SQL erklärt. Und wenn du dir Kapitel 32 anschaust, wirst du sehr schnell sehen was damit gemeint ist:

ist ja auch kein Wunder.

PHP: mysql_query - Manual

Du verwendest direkt ein SELECT count(*)....
Das halte ich für eine sehr gute Idee. So würde dann nämlich auch der Vergleich in deinem PHP-Code funktionieren.

kann mir jemmand , wenn er lust hat den code schreiben??

Datenbank1 | Datenbank2

Tabelle1 | Tabelle2

Inhalt1 |

Inhalt2 |

Einen Vergleich ob die Inhalte, die in db1 stehen, auch in db2 stehen.

Wenn ja rüber kopieren, wenn nicht ,dann überschreiben.

Wäre super nett, dann hätte ich einen kleinen Anfang.

wenn du nicht nur vergleichen, sondern auch *abgleichen* willst, ist das nicht so trivial.

es geht aus deinen postings auch nicht hervor, ob du felderweise oder zeilenweise abgleichen musst, d.h. datensätze, die in allen zeilen jeder einzelnen tabelle differieren, aus db1 SELECTieren und in db2 INSERTieren oder ob du auch auf vorhandene / nicht vorhandene felder prüfen musst (d.h. die struktur der tabellen ändern) möchtest.

es wir dir hier nur jeder ansätze liefern, einer davon:

öffne db1

öffne db1


für alle tabellen in db1 {

  für alle zeilen in tabelle {

    nimm zeile in tabelle

    vergleiche mit zeile in db2

    wenn ungleich oder nicht voranden {

      INSERTiere in db2.tabelle

    }

    nächste zeile

  }

  nächste tabelle

}


schliesse db1

schliesse db2

das setzt auch voraus, dass du zeilen eindeutig identifiezieren kannst, nämlich mittels PK - sonst wirds noch schwieriger und du musst auf feldebene vergleichen.

dass das ganze in PHP sauber gemacht werden muss ist klar, denn das script muss stabil laufen und datensatzkonsistenz schaffen / beibehalten. ich persönlich würde das garnicht mit PHP machen.

s'Amstel

OK,Danke schonmal,

Das Problem ist halt nur, das wir jeder ein Projekt bekommen haben, dass einem zugewiesen wurde.

Da ich keine Zeit habe mich vollständig mit der Thematik zu befassen, bräuchte ich "Anfangshilfe" und wollte mich an ein Forum wenden.

Habe bisher nur Installationsscripte geschrieben.

Meine Frage bezog sich ja nicht auf das komplette Projekt,sondern nur auf einen winzigen Teil davon...mit dem ich beginnen muss.

Deswegen wäre es super, wenn ihr mir einen kleinen Vergleich(Felderweise) posten könntet.

Meine Frage bezog sich ja nicht auf das komplette Projekt,sondern nur auf einen winzigen Teil davon...mit dem ich beginnen muss.

Deswegen wäre es super, wenn ihr mir einen kleinen Vergleich(Felderweise) posten könntet.

Bekomme ich dann einen Teil Deines Lohns?

Phil

das projekt ist für die schule, ich mach das ohne entlohnung..

Bearbeitet von lati

dann kläre doch erstmal mit deinem lehrer / auftraggeber ab, ob du dir in der geforderten zeit das nötige wissen aneignen kannst, ohne zumindest einen grossen teil bei jemand anderem erfragen zu müssen.

wenn du da jetzt eine woche zuwartest und dir niemand ein exakt passendes beispiel vorkaut (oder eines vorkaut, das unzureichend präzise oder brauchbar ist), hast du die zeit unnütz verschmissen.

s'Amstel

ihr versteht glaub ich nicht was ich meine, ist ja nicht schlimm, versuche es auf andereren wege

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.