Axel Richter: SQL Wie muss ich ein Feld für einzelbesetzung nennen?

Beitrag lesen

Hallo,

vor allem dürftest du auf der suche nach "unique" sein.

mal davon abgesehen, dass man schon im programm solche doppelten namen abfangen sollte, bevor man eine INSERT anweisung mit den neuen namen losläßt,

Warum?
Das Abfangen von Fehlern ist auch eine Methode der Programmablaufsteuerung.
Deine Variante:

SELECT ... WHERE UserName=$versuchterName
Wenn vorhanden, dann Fehlerausgabe; Ende;
sonst INSERT ...; Ende;

Variante 2 mit Abfangen des Fehlers:
Voraussetzung: Das Feld UserName ist UNIQUE.

INSERT ...;
Bei Fehler: Fehlerausgabe; Ende;
Ende;

Meiner Meinung nach wäre die zweite Variante zu bevorzugen, weil sie ohne zusätzliche Datenbankabfrage auskommt.

reicht ein unique constraint nicht aus. da muss schon ein unique/not null herhalten, bzw. ein primary.

Warum?
Da würde ich dann eher das INSERT _nur_ versuchen, wenn der einzufügende UserName _nicht_ Null ist. Das kann die Programmroutine prüfen, weil sie ohnehin prüfen muss, was dort drin steht.

viele Grüße

Axel