次のようなストアドプロシージャがあります。
CREATE PROCEDURE ProG()
BEGIN
SELECT * FROM `hs_hr_employee_leave_quota`;
END
しかし、それはエラーを与えます:
#1064
-SQL構文にエラーがあります。行3で ''の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。
エラーはどういう意味ですか?行番号2の何が問題になっていますか?
トリガー、ストアドプロシージャなどを使用する前に、区切り文字を変更する必要があります。
delimiter //
create procedure ProG()
begin
SELECT * FROM hs_hr_employee_leave_quota;
end;//
delimiter ;
このMySQLエラーが何を言おうとしているかを調べる方法
_#1064 - You have an error in your SQL syntax;
_
このエラーには手がかりがありません。間違いがどこにあるかを確認するには、これらすべての項目を再確認する必要があります。
!@#$%^&*()-_=+[]{}\|;:'",<>/?
を省略したか、不要なシンボルを含めました。select
、into
、または他の無数のキーワード。壊れたクエリが機能し始めるまで、できる限り削除します。そして、次回、健全な構文報告システムを持つPostgreSQLを使用します。
区切り記号、区切り記号...
プロシージャに複数のステートメントがある場合、本当に必要です。 (つまり、;
あなたのコードで、さらにステートメント/コマンドですか?次に、区切り文字を使用する必要があります)。
あなたのような単純なrpocedureの場合は、次のようにできます。
CREATE PROCEDURE ProG()
SELECT * FROM `hs_hr_employee_leave_quota`;
これはmysqlのメモリの問題である可能性があり、my.iniのmax_allowed_packetを増やしてみてください。