2. Funktionierende Lösung: Procedur und Trigger ( + mehrere Tests + Regex )
bearbeitet von Self-Nachtwächter> 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**?"* war 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:
~~~SQL
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](https://dev.mysql.com/doc/refman/8.0/en/string-comparison-functions.html). 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.
2. Funktionierende Lösung: Procedur und Trigger ( + mehrere Tests + Regex )
bearbeitet von Self-Nachtwächter> 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?"* war 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:
~~~SQL
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](https://dev.mysql.com/doc/refman/8.0/en/string-comparison-functions.html). 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.
2. Funktionierende Lösung: Procedur und Trigger ( + mehrere Tests + Regex )
bearbeitet von Self-Nachtwächter> Als Reaktion präsentierst Du eine wortreiche Version von „f*** dich“.
Ja, ich habe auf Krittelei reagiert.
> 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:
~~~SQL
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](https://dev.mysql.com/doc/refman/8.0/en/string-comparison-functions.html). 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.
2. Funktionierende Lösung: Procedur und Trigger ( + mehrere Tests + Regex )
bearbeitet von Self-Nachtwächter> Als Reaktion präsentierst Du eine wortreiche Version von „f*** dich“.
Ja, ich habe auf Krittelei reagiert.
> 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:
~~~SQL
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](https://dev.mysql.com/doc/refman/8.0/en/string-comparison-functions.html). Insoweit habe ich mich erst einmal streng an die ursprüngliche Aufgabe *"Verhindern des Eintrags eines leeren Strings"* gehalten und für alles auch mit trüber Glaskugel erwartbare weitere den Tipp mit dem Regex nachgereicht.
2. Funktionierende Lösung: Procedur und Trigger ( + mehrere Tests + Regex )
bearbeitet von Self-Nachtwächter> Als Reaktion präsentierst Du eine wortreiche Version von „f*** dich“.
Ja, ich habe auf Krittelei reagiert.
> 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:
~~~SQL
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](https://dev.mysql.com/doc/refman/8.0/en/string-comparison-functions.html). Insoweit habe ich mich erst einmal streng an die ursprüngliche Aufgabe *"Verhindern des Eintrags eines leeren Strings"* gehalten und für alles auch mit trüber Glaskugel zu erwartende weitere den Tipp mit dem Regex nachgereicht.