MySQL UNIQUE Datensatz bestimmen



  • Hallo,
    ich hab mal wieder eine kleine Frage zu MySQL.
    Ich benutzte eine dbExpress Connection und das dazugehörige Query um in eine MySQL Datenbank zu schreiben.

    Nun habe ich eine Tabelle in der ich die Adressen von Kunden abspeichern möchte. Der Aufbau ist also wie folgt:
    id, kundenNr, Anschrift1,...,Anschrift6
    Über alle Felder bis auf id(primär Schlüssel) habe ich einen unique-Index gelegt, damit es zu keinen Dopplungen kommen kann.

    Den Insert Befehl führe ich wie folgt aus

    SQLQuery1->SQL->Add("INSERT INTO kunden (kundenNr,Anschrift1,..,Anschrift6) VALUES (:kundenNr,:Anschrift1,..,:Anschrift6)")
    try
    {
       SQLQuery1->ExecSQL();
    }
    catch (TDBXError *error) {}
    

    Der Befehl wird auch richtig ausgeführt und wenn es den Eintrag schon gibt wird die Exception ausgelöst. Nun möchte ich falls es den Eintrag schon gibt die id des Eintrages bekommen um ihn in einer anderen Tabelle zu hinterlegen.
    Meine Frage ist nun wie komme ich ohne neue Select-Abfrage an die id. Wird das irgendwo im Query gespeichert oder im TDBXError oder muss ich wirklich noch eine Select-Abfrage machen.

    Danke schonmal im Voraus.



  • Hallo

    Meines Wissens nach must du noch ein SELECT extra ausführen.

    bis bald
    akari



  • Danke für die schnelle Antwort,

    hab es jetzt erstmal über eine weitere SELECT Abfrage gelöst.
    Falls noch jemanden was dazu einfällt kann er es ja noch posten.



  • Ich meine mal irgendwo gelesen zu haben, dass mySQL ein INSERT_OR_UPDATE Kommando ambietet, vielleicht lässt sich damit ja irgendwas anstellen. Ist natürlich nicht standardkonform.

    PS:
    Es gibt ON DUPLICATE KEY, mit dem man ein alternatives SQL Statement ausführen kann, falls der Primärschlüssel bereits existiert. Das sollte doch brauchbar sein.


Anmelden zum Antworten