Warum nicht nutzen, was da ist?
Eben... Ein DELETE FROM `Zuege` WHERE `Zugnummer` = :train_id kann keine 1000000 Datensätze löschen, es sei denn, Du hast überall die gleiche Train_id, was nicht passieren kann, wenn das UNIQUE ist.
Wenn der Entwickler selber die falsche Query schreibt und die WHERE-Klausel bspw. vergisst, ist das Lehrgeld, sowas sollte nicht mit Live-Daten getestet werden.
Wenn die Datenbank sauber aufgebaut ist und die Queries entsprechend getestet wurden, kann so etwas, wie hier beschrieben nicht passieren.
Geht man dennoch davon aus, dass sowas passieren kann, liegt aus meiner Sicht ein Verständnisproblem der Materie vor.
Sicher kann man bei vielen Dingen auf Nummer sicher gehen, aber manches ist halt unnötig, wenn die Basis vernünftig aufgebaut wurde, jedes LIMIT kostet.
Eine Datenbank - soweit vorhanden - ist das fundamentalste und Zeit intensivste Element in einer Anwendung.
Wenn diese erstmal steht, darf so etwas nicht passieren.
Natürlich fragen die Leute hier - und vermutlich der TE auch -, weil Sie da nicht die Profis sind ( ich auch nicht! ).
Aber ich finde es viel wichtiger, die Grundprobleme aufzuzeigen, als einen Workaround anzubieten, der im Grunde nicht nötig wäre, wenn man sich damit befasst. Ich setze da einfach voraus, dass die Leute etwas lernen wollen. Wenn nicht, können sie die Hinweise ignorieren.
Ich will aber keinen davon anhalten, LIMIT zu verwenden! Ich möchte nur sensibilisieren, dass es sinnvollere Ansätze gibt.