2016-09-16 25 views
-1

我正在使用SQuirelL客戶端連接到MariaDB。我的操作系統是Ubuntu。我已將Mariadb驅動程序(mariadb-java-client-1.5.2.jar)下載到適當的位置,並將其鏈接到SQuirelL客戶端。我已經建立了一個數據庫,並且能夠在其中創建表格。 但是,當我嘗試創建任何對象,我使用DELIMITER時,事情往南走。我甚至嘗試使用mysql驅動程序mysql-connector-java-5.1.38.jar。但同樣的錯誤。SquirelL SQL客戶端的MariaDB 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時,一次執行一個命令。

如果性能需要,它們可以是批處理,但它們仍應該一次提交給JDBC驅動程序。

+0

謝謝安德烈亞斯!就是這樣!我認爲它應該像MySQL一樣工作。 –