Auto_increment Problem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Auto_increment Problem

    Hi Leuts,
    ich weiß das Thema wurde hier schon öfter behandelt aber ich bin aus den anderen Threads zu dem Thema nicht ganz schlau geworden.
    Manuals hab ich gelesen um das auch gleich abzuklären.

    Hier mein Problem:

    Ich möchte alle paar Tage über mein CMS meine MySQL Datenbank in einer xml-file sichern. Funktioniert auch soweit. Wenn ich diese jedoch wieder importieren will ergeben sich probleme mit der id vergabe in MySQL.

    Mein Forum beispielsweise umfasst 3 Tabellen

    Tabelle | Wert | Wert2 | Wert3
    Forum fid
    thread tid fid
    post pid tid fid

    wenn ich diese 3 Tabellen jetzt durch das xml-file neu einspiele stimmen hinterher die Werte tid und fid aufgrund von autoincrement nicht mehr überein. Natürlich ließe sich da abhilfe schaffen durch mysql_insert_id().
    Allerdings würde ich gerne auf Autoincrement verzichten.

    Noch kritsicher ist es da mit den Benutzern. Dort treten zwar keine Fehler auf, allerdings wäre es mir wichtig das jeder Benutzer die id die er bei der Anmeldung erhalten hat auch in Zukunft beibehält(aus verschiedenen Gründen). Auch würd mich interessieren ob es nicht ne möglichkeit gibt lücken in den id`s aufzufüllen. Beispielsweise ich lösche nummer 3, dann ist diese zahl für einen neuen Benutzer frei... geht aber bei auto_inc nicht und wies anders geht keine Ahnung.

    Wäre euch für Vorschläge zur Lösung dankbar. Möchte es gleich richtig machen und professionell lösen... denn ich bin mir sicher es kommen später noch Elemente ins CMS wo ich ebenfalls wieder auf das Problem stoße und halbherzige Lösungen nur Kummer bereiten.

    Möchte mit diesem Thread allerdings keinen Meinungskrieg anzetteln

    Danke im Vorraus MFG Marc
    Geht net gibts net...

  • #2
    Hallo deschmiddi
    Du kannst mit dem SQL REPLACE bereits vorhandene
    Datensätze mit der gleichen ID Überschreiben.
    Voraussetzung: Primary key den Du in diesem Fall ja hast (auto_increment).
    Du musst dabei natürlich die ID mit übergeben (was Du im Moment wahrscheinlich nicht machst).

    Ein Wiederverwenden bereits benutzter und gelöschter IDs halte ich nicht für sinnvoll.
    Mit INSERT lassen sich jedoch Datensätze einfügen, solange die Spalte mit dem Primary key unique bleibt. Sonst gibt's eine Fehlermeldung.

    Kommentar


    • #3
      ... andererseits verstehe ich nicht, warum du die exportierte Daten in die DB importieren willst, wenn die Daten völlig i.O. sind . Eine Sicherung wieder einzupielen, sieht anders aus, denn da sind die online-Daten schon korrupt, dass man sie nicht mehr gebrauchen kann und daher die Tabelle ohnehin vor dem Import löscht, somit stimmen die Relationen mit den anderen Tabellen wieder und man hat keine Probleme mit auto_increment.

      Kommentar


      • #4
        da ist was wahres dran....
        dass ich die tabellen dann löschen muss soweit hab ich noch garnet gedacht... aber es würde ja zur not auch gehen sow ar zumindest mein gedankengang, dass die tabellen nur geleer werden und nicht die tabellen komplett gelöscht... da ergibt sich dann aber eben das problem dass die id`s die schon vergeben wurden nicht mehr vergeben werden...

        na ich werd dann meine replace query die ich eh schon hab um die id-werte ergänzen und es damit mal versuchen. Dann söllte es ja ohne komplettes Löschen der Tables gehen... die werd ich denke ich mal nur komplett löschen wenn ich mein cms das einen integrierten installer aufweist komplett neu einspiele... die import variante ist eher dazu gedacht um ihm fall eines hacker angriffs beispielsweise dauerzuspamming des forums oder der gästebucher oder ähnlichem den inhalt der tables zu überschreiben bzw. zu leeren und neu zu füllen.

        Söllte es an meinem Vorhaben nix weiter zu mäkeln geben, mach ich das dann jetzt so.

        Vielen dank euch beiden.
        Mfg Marc
        Geht net gibts net...

        Kommentar

        Lädt...
        X