2016-09-16 7 views
-1

Я использую клиент SQuirelL для подключения к MariaDB. Моя ОС - Ubuntu. Я загрузил драйвер Mariadb (mariadb-java-client-1.5.2.jar) в нужное место и связал его в клиенте SQuirelL. Я установил базу данных и могу создавать в ней таблицы. Но все идет на юг, когда я пытаюсь создать любой объект, где я использую DELIMITER. Я даже попытался с помощью драйвера mysql, mysql-connector-java-5.1.38.jar. но та же ошибка.MariaDB Ошибка синтаксиса SQL из SquirelL SQL Client

это мой 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. Вы не найдете его там.

DELIMITER является MySQL 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. –