MySQLWorkbenchを使用して同じ問題が発生しました。 MySQLドキュメント
によると 、DECLARE
「ステートメントは、ストアドプログラム内のローカル変数を宣言します。」これは、ストアドプロシージャ/関数でのみ機能することが保証されていることを意味しているようです。
私にとっての解決策は、DECLARE
を削除することでした。 ステートメントを作成し、SET
に変数を導入します 声明。あなたのコードにとって、それは次のことを意味します:
-- DECLARE FOO varchar(7);
-- DECLARE oldFOO varchar(7);
-- the @ symbol is required
SET @FOO = '138';
SET @oldFOO = CONCAT('0', FOO);
UPDATE mypermits SET person = FOO WHERE person = oldFOO;