Matthias Apsel: neuer Artikel - Reloadsperre Bocksterzer

Beitrag lesen

Om nah hoo pez nyeetz, Jörg Reinholz!

Wozu diese Bockstürze?

Bei uns hießen die Bocksterzer, Herkunft wahrscheinlich von Sterz (Vogel), die bei der Balz immer mit dem Schwanz wippen, gemeint ist das nach-hinten-Ausschlagen von Schafen und Ziegen und vielleicht auch mit allen Vieren in der Luft sein.

INSERT INTO table (value1, value2)

SELECT 'stuff for value1', 'stuff for value2' FROM table
WHERE NOT EXISTS (SELECT * FROM table
      WHERE value1='stuff for value1' AND value2='stuff for value2')
LIMIT 1


> Wozu diese Bockstürze?  
  
- Wenn die ID der einzige Primärschlüssel ist, ist die Datenbankabfrage sehr umfangreich.  
- Im Falle eines Reloads ist die Abfrage auch überflüssig.  
- Ich weiß auf Anhieb nicht, wie ich dem Nutzer eine aussagekräftige Fehlermeldung zukommen lassen soll, denn aus Sicht der Datenbank ist ja alles in Ordnung.  
  
Den Nachteil, den ich an meiner Variante durchaus sehe, ist, dass man die gewünschte Funktionalität auf 3-4 Stellen im Code verteilt.  
  
Matthias

-- 
Der Unterschied zwischen Java und JavaScript ist größer als der zwischen [Los und Losung](http://selfhtml.apsel-mv.de/java-javascript/index.php?buchstabe=L#los).  
![](http://www.billiger-im-urlaub.de/kreis_sw.gif)