0

MYSQL Workbenchを使用して、MYSQLを使用してVisualStudioでプロジェクトを作成しました。正常に動作します。次に、ホスティングプロバイダーに移動し、ストアドプロシージャを追加しようとします

エラーSQLクエリ:

CREATE PROCEDURE spLogin_VerifyUser(IN User VARCHAR(50)、IN Pass VARCHAR(50)、OUT ChurchID INT)BEGIN DECLARE ChurchIDTemp INT DEFAULT 0;

MySQLは言った:

1064-SQL構文にエラーがあります。3行目の''の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

次のストアドプロシージャを追加しようとすると、次のようになります。

create procedure spLogin_VerifyUser(IN User VARCHAR(50),IN Pass VARCHAR(50),OUT ChurchID INT)
begin
DECLARE ChurchIDTemp INT DEFAULT 0;
select idchurch into ChurchIDTemp FROM loginusers
WHERE Username=User and Password=Pass;
select IFNULL(ChurchIDTemp,0) into ChurchID;
end
;;
4

3 に答える 3

1

試す

delimiter |
create procedure spLogin_VerifyUser(IN User VARCHAR(50),IN Pass VARCHAR(50),OUT ChurchID INT)
begin
    DECLARE ChurchIDTemp INT DEFAULT 0;
    select idchurch into ChurchIDTemp FROM loginusers
    WHERE Username=User and Password=Pass;

    select IFNULL(ChurchIDTemp,0) into ChurchID;
end;
|
于 2012-05-28T16:18:51.170 に答える
0

MySQLのフルバージョンですか、それともコミュニティバージョンですか?

コミュニティバージョンは無料ですが、ストアドプロシージャは許可されていません。

(私は数年前に同じ問題を抱えていました)

于 2012-05-28T16:18:40.780 に答える
0

これは一般的に直面するエラーです。

すでにご存知かもしれませんが、mySQLではプロシージャが許可されていますが、phpMyAdminではプロシージャを設計できます。他の場所で作成していて、phpMyAdminで簡単に実行できるようにしたい場合は、次のことを確認してください。

  1. ストアドプロシージャを許可しないため、mySQLの無料のコミュニティバージョンはありません。これは、異なるバージョンとphpMyAdminの間の互換性の問題だと思います。考えられる解決策については、以下を確認してください。

これを参照してください:http://tycoontalk.freelancer.com/the-database-forum/117270-phpmyadmin-and-procedures.html

PhpMyAdminのデータベースのリストは、information_schemaである必要があります。その中にはテーブル名ROUTINESがあります。あなたはそれを発行することによってそれを照会します

select ROUTINE_NAME from ROUTINES;

これにより、ストアドプロシージャ名のリストが出力されます。手順を確認するには、クエリを実行します

show create procdure [procedure name from above select]
于 2012-05-28T16:25:02.553 に答える