Self-Nachtwächter: 2. Funktionierende Lösung: Procedur und Trigger ( + mehrere Tests + Regex )

Beitrag lesen

Als Reaktion präsentierst Du eine wortreiche Version von „f*** dich“.

Ja, ich habe auf Krittelei reagiert. Das "warum LIKE für einen Vergleich mit einem konstanten Wert?" ist mit allem Verlaub einfach nur „gründlich missglückte Besserwisserei“. Dazu unten mehr.

Müssen wir daraus schließen, dass das LIKE durch ein = ersetzt werden kann und Du Dich ärgerst, dass Dir das nicht selbst aufgefallen ist?

Wieso sollte LIKE hier durch = ersetzbar sein? Aus dem besprochenen Quelltext:

        IF D_NAME LIKE "" THEN
            SIGNAL SQLSTATE '45000'
            SET MESSAGE_TEXT = 'D_NAME was empty';
        END IF;

Zitat: 'D_NAME was empty'

LIKE kann also NICHT durch ein = ersetzt werden ohne auch den MESSAGE_TEXT zu ersetzen. "12.5.1 String Comparison Functions" ist im Handbuch frei zugänglich. Insoweit habe ich mich erst einmal streng an die ursprüngliche Aufgabe "Verhindern des Eintrags eines leeren Strings" gehalten und für alles (selbst mit trüber Glaskugel) erwartbare den Tipp mit dem Regex nachgereicht.