Existenz vor dem Insert prüfen

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

  • Existenz vor dem Insert prüfen

    Hallo zusammen,

    gibt es eine Möglichkeit, vor dem Einfügen mittels Insert zu prüfen, ob für die gegebenen Werte bereits ein Eintrag existiert?

    DB-Struktur:

    Jahr
    Monat
    Tag
    Stunde
    FlagTyp
    Titel

    Jetzt möchte ich für jedes mögliche Datum (1.1.2006 13:00, 1.1.2006 15:00, 15.4.2006 3:00, ...) ein Flag setzen. Für jedes Datum soll jedoch nur ein Flag gespeichert werden.

    Kann ich also inhaltlich sagen INSERT INTO ... IF NOT EXIST oder sowas in der Art? Kann man einen Unique irgendwie anpassen? Das kann ich ja leider nicht verwenden, da ja jeder Monat den Tag 20 hat.

    VIELEN DANK!

    strauberry

  • #2
    Nein, statt dessen solltest du lieber deine DB richtig layouten und nen UNIQUE-Key verwenden.

    Das kann ich ja leider nicht verwenden, da ja jeder Monat den Tag 20 hat.
    wer sagt, dass man den nur auf ein Feld anwenden kann?

    Kommentar


    • #3
      Mache es jetzt so: hab noch eine Spalte Timestamp dazugefügt und diese auf unique gesetzt. Das geht ja Wieso kommt man auf sowas manchmal erst, wenn man hier das Forum belästigt hat?

      Kommentar


      • #4
        wenn dus auf ein feld machst, dann mach doch

        Jahr
        Monat
        Tag
        Stunde

        in ein DATE_TIME

        oder halt den UNIQUE über alle spalten...

        Kommentar


        • #5
          Die Spalten muss ich leider getrennt machen, ist für meine Auswertung im Script einfacher... habe jetzt eine Spalte "UniqueKey" als Varchar erstellt. Hier kommt eine aus dem Datum und weiteren Parametern berechnete Variable rein, die das ganze Unique macht. Passt wunderbar jetzt.

          Vielen Dank!

          Kommentar


          • #6
            und damit du vor einem insert nicht unbedingt noch eine select zur prüfung machen musst, empfehle ich REPLACE statt SELECT+INSERT/UPDATE zu machen.
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar

            Lädt...
            X