Vorhandenen Datensatz NICHT überschreiben?

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

  • Vorhandenen Datensatz NICHT überschreiben?

    Nach langer Zeit habe ich mal wieder eine Frage die ich mir nicht selber beantworten kann.

    Ich lese ein unix-Verzeichnis aus und füge alle gefunden Dateien (Grafiken) in meine mySQL DB ein. Das funktioniert auch.
    Dabei habe ich die Spalte `file` auf Unique gesetzt.
    Doch immer wenn ich mein Script ausführe erhöht sich den Auto-Increment Wert der Spalte ID um die jeweils gefundenen Dateien.
    Zum Verständnis: Ich möchte nur NEUERE Dateien in die DB hinzufügen.

    Ein "INSERT into" funktioniert nicht. Da bekomme ich mekker weil `file`->key schon vorhanden ist.
    Ein "INSERT IGNORE" funktioniert, der AI geht aber in die Höhe.


    Ich könnte natürlich jetzt erst jede gefundene Datei gegenchecken ob sie schon vorhanden ist. Aber das geht doch bestimmt auch viel einfacher und vor allem schneller.
    Es wird bei einem BigINT wohl nicht sonderlich schlimm sein, dass der AI Wert jedes mal massiv steigt. Aber es erscheint mir etwas unnötig zumal ich dann irgendwann sehr große ID's habe.

    Kann mir bitte jemand auf die sprünge helfen?

    Cu SusiSorglos
    Zuletzt geändert von SusiSorglos; 11.03.2013, 03:02.
    PHP 8.0, MariaDB 10.5 auf U20.04

  • #2
    Kannst du nicht anhand filemtime() herausfinden, welche neuer sind?

    Ein "INSERT into" funktioniert nicht. Da bekomme ich mekker weil `file`->key schon vorhanden ist.
    Das ist doch auch nicht wirklich ein Drama, oder?
    Wir werden alle sterben

    Kommentar


    • #3
      Probier es mal mit einem Subquery.

      Beispiel:
      Code:
      INSERT INTO `table` (`field1`, `field2` ('value1', 'value2') 
      WHERE NOT EXISTS (
           SELECT `field1` FROM `table` 
           WHERE field1='value'
      )

      Kommentar


      • #4
        Der WHERE NOT EXISTS hat nicht so recht funktionieren wollen. Auch laut Manual sollte es irgendwie schon richtig sein. Ich habe allerdings immer einen Error bekommen.
        Da ich jetzt nicht noch Stunden damit verbringen wollte habe ich es doch mit einer vorherigen Abfrage gelöst. Das funktioniert und meine AI ID's bleiben nun immer gleich.

        Dennoch thx an euch beide.
        PHP 8.0, MariaDB 10.5 auf U20.04

        Kommentar

        Lädt...
        X