Joy: Nur eintragen wenn noch nicht vorhanden

Halli Hallo.

Ich würde gerne einen Datensatz nur eintragen wenn er noch nicht vorhanden ist.

Bisher kenn ich nur die möglichkeit es dann zu updaten
INSERT..ON DUPLICKATE KEY UPDATE...

aber das ist ja nicht das was ich will.

Ausserdem könnte man es mit 2 Queries machen, aber das will ich auch nicht sondern ich will es mit einem Query machen.

lg, joy

  1. Hi,

    Ich würde gerne einen Datensatz nur eintragen wenn er noch nicht vorhanden ist.

    In seiner Gänze, also über die Inhalte sämtlicher Spalten gesehen?

    Bisher kenn ich nur die möglichkeit es dann zu updaten
    INSERT..ON DUPLICKATE KEY UPDATE...

    Lege einen UNIQUE INDEX auf die Spalten, für die du Eindeutigkeit haben willst, und mache den INSERT einfach. Verletzung des UI wird dann mit einem entsprechenden Fehler quitiert.

    MfG ChrisB

    --
    Light travels faster than sound - that's why most people appear bright until you hear them speak.
    1. n'abend,

      Lege einen UNIQUE INDEX auf die Spalten, für die du Eindeutigkeit haben willst, und mache den INSERT einfach. Verletzung des UI wird dann mit einem entsprechenden Fehler quitiert.

      Bei manchen DBMS (beispielsweise MySQL) gibt es die Erweiterung INSERT IGNORE INTO .... Das unterdrückt eine Fehlermeldung bei DuplicateKeyViolations. PostGreSQL kann das afair nicht (zumindest nicht in den von uns eingesetzten Versionen).

      weiterhin schönen abend...

      --
      #selfhtml hat ein Forum?
      sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|
  2. Hallo,

    Ich würde gerne einen Datensatz nur eintragen wenn er noch nicht vorhanden ist.

    das ist eine Standardaufgabe: nutze einen UNIQUE-Key und rechne mit einer Schlüsselverletzung beim INSERT.

    Freundliche Grüße

    Vinzenz