1

私はMySQLを初めて使用し、プロシージャを作成しようとしています。データベースに接続し、OracleSQLDeveloperでデータを処理します。

以下をスクリプトとして実行してみると...

DELIMITER // 
CREATE PROCEDURE GetAllProducts() 
BEGIN 
SELECT * FROM products; 
END // 
DELIMITER ; 

次のエラーが発生します...

Error starting at line 1 in command:
DELIMITER //
Error at Command Line:1 Column:0
Error report:
SQL Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELIMITER //' at line 1

最新バージョンのOracleSQLDeveloperとlasMySqlバージョン(両方をインストールしたばかり)を使用しています

区切り文字の使用方法について誰かが私を助けてくれますか?

ありがとう、レオ

4

1 に答える 1

2

あなたのコードは100%正しいです。DELIMITERはMySQLコマンドではありません。このコマンドは、クライアントによってサポートされている必要があります。DELIMITERは、クライアントがスクリプト内のステートメントを解析するのに役立ちます。

プロシージャにはステートメントが1つあるため、BEGIN ... ENDやDELIMITERSを使用せずに、プロシージャを書き換えることができます。例:-

CREATE PROCEDURE GetAllProducts() 
SELECT * FROM products;

また、DELIMITERをサポートする別のクライアントを試すこともできます:mysql — MySQLコマンドラインツール、GUIツール— dbForge Studio for MySQL(無料エクスプレス版)など。

于 2012-07-06T06:01:36.977 に答える