2016-09-16 11 views
-1

私はSqueirelLクライアントを使用してMariaDBに接続しています。私のOSはUbuntuです。私はMariadbドライバ(mariadb-java-client-1.5.2.jar)を適切な場所にダウンロードし、SQuirelLクライアントにリンクしました。私はデータベースをセットアップし、テーブルを作成することができます。 しかし、DELIMITERを使うオブジェクトを作成しようとすると、物事が南になる。私はmysqlドライバ、mysql-connector-java-5.1.38.jarを試してみました。同じエラーです。MariaDB SQL構文エラーSquirelL SQLクライアントから

これが私のSQLです -

DELIMITER // 

CREATE FUNCTION FortyTwo() RETURNS TINYINT DETERMINISTIC 
BEGIN 
DECLARE x TINYINT; 
SET x = 42; 
RETURN x; 
END 

// 

DELIMITER ; 

、これは誤りである -

Error: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'DELIMITER // 

CREATE FUNCTION FortyTwo() RETURNS TINYINT DETERMINISTIC 
BEGIN 
DE' at line 1 
Query is : DELIMITER // 

CREATE FUNCTION FortyTwo() RETURNS TINYINT DETERMINISTIC 
BEGIN 
DECLARE x TINYINT 
SQLState: 42000 
ErrorCode: 1064 
Error occurred in: 
DELIMITER // 

CREATE FUNCTION FortyTwo() RETURNS TINYINT DETERMINISTIC 
BEGIN 
DECLARE x TINYINT 

私は非常に任意の助けに感謝します!ありがとう

答えて

1

DELIMITERは、有効なMariaDB SQLコマンドではありません。
documentationをご覧ください。あなたはそこにそれを見つけることはできません。

DELIMITERMySQL Client commandです:

mysql> help 

List of all MySQL commands: 
Note that all text commands must be first on line and end with ';' 
... 
delimiter (\d) Set statement delimiter. 
... 

だけJDBCを使用して、一度に1つのコマンドを実行して以来、あなたは一般的に、区切り文字は必要ありません。

パフォーマンスのために必要な場合はバッチ式にすることができますが、それでも一度に1つずつJDBCドライバに送信する必要があります。

+0

ありがとうございました!それだった!私はそれがMySQLのように動作するはずだと思った。 –