Yadgar: JOIN-Problem, zweiter Teil

Beitrag lesen

High!

So macht man das nicht, weil nur diese eine Stelle kontrolliert, ob doppelte Werte eingetragen werden. An anderer Stelle kann diese gewünschte Einschränkung problemlos umgangen werden.

Unwahrscheinlich, da ich nicht damit rechne, die jeweiligen Skripte noch nennenswert ausbauen zu müssen und dabei entsprechende Programmierfehler zu produzieren... wer sollte sonst diese Einschränkung umgehen können, wenn allein ich Schreibrecht auf dem Server habe?

Ebenso könnte in einer Mehrnutzerumgebung, wie sie das Web darstellt, zwischen Abfrage une Eintrag bereits ein anderer den Eintrag vorgenommen haben. Das ist zwar in der Regel nicht sehr wahrscheinlich, weil es wohl selten vorkommt, dass genau zur selben Zeit jemand den selben Gedanken hatte, aber trotzdem macht man das nicht. Wenn sowas doch vorkommt, sind solche Fehler schwer zu finden, weil sie von Natur aus ganz schlecht nachvollziehbar sind.

O. k., das leuchtet allerdings ein!

Deshalb ist es besser, auf die Spalte (oder auch mehrere Spalten), in der (oder über die) keine Dopplungen enthalten sein dürfen, einen Unique-Index zu legen. Dann frage man nicht vorher ab, sondern mache einfach auf gut Glück das INSERT. Wenn der Datensatz noch nicht vorhanden war, wird er eingetragen und das Statement meldet keinen Fehler. War er schon vorhanden, gibt es einen Unique-Constraint-Fehler. Beim Auswerten auf Fehler fragt man nun gezielt diesen Fehler ab und weiß bei seinem Auftreten, dass der Datensatz schon vorhanden war.

Wieder was gelernt (und auch gleich ausprobiert) - funktioniert prima und spart eine ganze Menge PHP-Code ein! Danke für den Tipp... und rechne schonmal damit, dass es in einem meiner virtuellen PoV-Ray-Planetensysteme auf einem mittelgroßen Mond eine "Dedlfix Regio" geben wird!

Bis bald im Khyberspace!

Yadgar