Jörg: MySQL: Fehler 1062 - Was Du WIRKLICH willst.

Beitrag lesen

Mahlzeit Willi,

erstmal vorab danke auch an alle anderen, die mir geantwortet haben.👍
Leider komme ich erst jetzt gerade wieder dazu, selber zu antworten.

Daher, wie gesagt, an dieser Stelle einen Dank an die Aufklärung, warum mein bisheriger Code nicht mehr funktioniert hatte.

Eines von diesen ist, was Du wirklich willst:

Da hast Du unzweifelhaft Recht! 😉

https://dev.mysql.com/doc/refman/8.0/en/insert-on-duplicate.html

INSERT INTO t1 (a,b,c) VALUES (1,2,3)
  ON DUPLICATE KEY UPDATE c=c+1;

Hinter ON DUPLICATE KEY UPDATE notiere was geschehen soll wenn der Tabellen-Key doppelt vergeben werden sollte.

Nein, genau das kannte ich, brauchte es aber nicht, mal davon abgesehen, dass man das natürlich auch nutzen könnte, indem man einen "Fake-Update" einer unbedeutenden Spalte vornimmt.

https://dev.mysql.com/doc/refman/8.0/en/insert-select.html

INSERT IGNORE INTO t1 (a,b,c) VALUES (1,2,3);

Ignoriert den ganzen Befehl wenn der Tabellen-Key doppelt vergeben werden sollte. Wirft keine Exeption.

Ja und genau das kannte ich nicht, entspricht aber dem, was ich benötige. Zumindest in diesem Fall.

Ich habe noch an anderer Stelle mal vor Jahren mit dem 1062er Error gearbeitet, ich müsst mal schauen, ob ich dort auch eines der Beiden nutzen kann oder der Fall dort komplizierter liegt.

Ich meld' mich später hierzu nochmal. In diesem fall aber ist INSERT IGNORE sicher meine Lösung, ich hatte es jetzt kurzfristig über einen zusätzlichen SELECT geregelt, der das Vorhandensein eines eventuellen DUPLICATE ENTRY vorwegnimmt.

Jörg