1

MySQL データベースのストアド プロシージャの作成に問題があります。

機能する Select ステートメントを次に示します。

use canningi_db_person_cdtest;
SELECT *
FROM pet
WHERE name = 'Puffball';

動作しないストアド プロシージャは次のとおりです。

use canningi_db_person_cdtest;
CREATE PROCEDURE GetAllPets() 
BEGIN 
SELECT *
FROM pet
WHERE name = 'Puffball'; 
END

次のエラーが表示されます。

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

どうすればこれを機能させることができますか?

編集

このストアド プロシージャを呼び出すにはどうすればよいですか? 私はこれを試しましたが、結果はありません:

use canningi_db_person_cdtest;
CALL GetAllPets();

これはエラーです:

#1312 - PROCEDURE canningi_db_person_cdtest.GetAllPets can't return a result set in the given context 
4

2 に答える 2

1

区切り記号を追加して、手順を終了します。例:

use canningi_db_person_cdtest;

DELIMITER //

CREATE PROCEDURE GetAllPets() 
BEGIN 
    SELECT *
    FROM pet
    WHERE name = 'Puffball'; 
END//

さらに詳しい情報が必要な場合は、http://dev.mysql.com/doc/refman/5.1/en/stored-programs-defining.html を参照してください

于 2013-09-28T01:45:36.977 に答える